XSS Cross Site Scripting | Explotando Vulnerabilidades

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 que trataremos en este post, sera el XSS Reflejado. Para Explotar esta vulnerabilidad podemos aprovecharnos de ciertas funciones o partes código de la aplicación web. 

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
La ventaja que tiene POST sobre GET es que los datos no, son visibles para el usuario, y por ende no puede modificar los, como los vimos en la explotacion de XSS con el metodo GET aunque la explotacion es casi la misma.


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.


  • 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
Ya conociendo el parámetro y el valor, podemos ingresar directamente nuestro payload XSS hasta lograr el alert, para verificar que el sitio es vulnerable a XSS.
  • 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.


Seleccionamos el metodo POST e ingresamos los datos.


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.
 

Publicar un comentario

0 Comentarios

Slider Parnert

Subscribe Text

¿Quieres estar al día con noticias?