Explotando Vulnerabilidades POST
Como sabemos
las vulnerabilidades XSS consisten en inyectar código JavaScript en X
sección de una aplicación web para que esta lo interprete como propio.
Existen 3 tipos de vulnerabilidades XSS:
- XSS Reflejado
- XSS Persistente o Almacenado
- XSS basado en DOM
El mas común, se encuentra en los formularios de búsqueda, en este caso tendremos en cuenta la forma en que se envían los datos, ya sea GET y POST.
POST
Cuando un usuario llena formularios en una aplicacion web, los datos deben enviarse, para ser tratados, manipulados, almacenados, etc. El método POST lo podemos identificar facilmente, ya sea por la URL o el código HTML de formulario.El método POST a diferencia del GET, es que este no muestra los datos ni los parámetros que viajan por la URL. El cliente no ve los parámetros en la URL.
POST |
Explotacion de una vulnerabilidad XSS [método: POST]
Para identificar el uso del método post en algún sitio, lo podemos ver el la url, y en el código de algún formulario, donde nosotros podamos introducir código.
Como podemos ver en la imagen superior, el atributo method utiliza POST para el envio de datos.
La pagina tiene como funcionalidad cambiar el color de fondo, donde el usuario, selecciona el color de una lista. No importa el color que seleccionamos, pues por el uso del método POST no podemos ver los parámetros, ni los datos que estos tienen.
Para poder explotar una vulnerabilidad XSS donde la aplicacion utiliza el método POST, se debe cambiar el POST por el GET en el atributo method en la etiqueta form.
Una vez cambiado el valor del atributo method, a GET, vamos a ingresar o en este caso, seleccionar otro color. Seleccionaremos el color rojo.
Como podemos ver en la imagen superior, al cambiar POST por GET e introducir un nuevo valor, en la URL ya tenemos los parámetros que son enviados junto con los valores.
http://pruebas.hckdrk.mx/WrG/color.php - POST
http://pruebas.hckdrk.mx/WrG/color.php?color=red - GET
Sabemos que existe un parámetro llamado "color" el cual envía el valor, en este caso una variable "red" con la cual cambia el color del fondo a rojo. Nosotros podemos cambiar este valor o variable, sin la necesidad ya de tener que hacerlo desde la lista des plegable.
Para poder explotar una vulnerabilidad XSS donde la aplicacion utiliza el método POST, se debe cambiar el POST por el GET en el atributo method en la etiqueta form.
Una vez cambiado el valor del atributo method, a GET, vamos a ingresar o en este caso, seleccionar otro color. Seleccionaremos el color rojo.
Como podemos ver en la imagen superior, al cambiar POST por GET e introducir un nuevo valor, en la URL ya tenemos los parámetros que son enviados junto con los valores.
http://pruebas.hckdrk.mx/WrG/color.php - POST
http://pruebas.hckdrk.mx/WrG/color.php?color=red - GET
Sabemos que existe un parámetro llamado "color" el cual envía el valor, en este caso una variable "red" con la cual cambia el color del fondo a rojo. Nosotros podemos cambiar este valor o variable, sin la necesidad ya de tener que hacerlo desde la lista des plegable.
- http://pruebas.hckdrk.mx/WrG/color.php?color=red
- http://pruebas.hckdrk.mx/WrG/color.php?color=blue
- http://pruebas.hckdrk.mx/WrG/color.php?color=black
- http://pruebas.hckdrk.mx/WrG/color.php?color=green
- http://pruebas.hckdrk.mx/WrG/color.php?color=red'"><script>alert(/H/) </script>
Las herramientas de explotacion de XSS también soportan el método POST. Por ejemplo una de mis herramientas favoritas HackBar.
La función es la misma, cuando seleccionamos la opción "Post data" en la parte inferior se nos abre o habilita un recuadro de texto, donde debemos ingresar los datos POST los cuales seria el parámetro "color". En esta misma sección, ingresamos nuestros payloads.
Y logramos explotar una vulnerabilidad XSS en una apliacion web, la cual utiliza el método POST para enviar información.
En el caso de herramientas, por ejemplo BruteXSS, nos pide que indiquemos el metdo GET o POST.
Select method: [G]ET or [P]OST (G/P): p
[?] Enter URL:
[?] > http://pruebas.hckdrk.mx/WrG/color.php URL POST
[+] Checking if pruebas.hckdrk.mx is available...
[+] pruebas.hckdrk.mx is available! Good!
[?] Enter post data: > color=red DATOS POST (PARAMETRO Y VALOR/VARIABLE)
----------------------------------------------------------------------------------- [Extra]
Te recomiendo leer:
El sitio de ejemplo es: http://pruebas.hckdrk.mx/WrG/color.php obtenido de los WarGames de UnderC0de.
0 Comentarios