This site uses cookies own and third. If you continue to browse consider to accept the use of cookies. OK More Info.

XSS por POST

  • 4 Replies
  • 6739 Views

0 Members and 1 Guest are viewing this topic.

Online ANTRAX

  • *
  • Administrator
  • Posts: 5854
  • Actividad:
    80%
  • Country: ar
  • Reputación 43
  • ANTRAX
  • Twitter: @Underc0de
    • View Profile
    • Underc0de
    • Email

XSS por POST

  • on: May 18, 2015, 12:05:32 am
Hola a todos!

Por el foro he visto muchos papers o tutoriales sobre XSS, pero ninguno habla del metodo POST.
Hace unos días reportaron un XSS por POST en el formulario de contacto de Underc0de. Por suerte no era nada riesgoso, pero era una vulnerabilidad que debíamos arreglar.
En esta ocasión usaremos el código de ese formulario de contacto para reproducir la falla y para ver como probar si nuestras aplicaciones son vulnerables a los XSS por POST.

El código del formulario de contacto está acá: You are not allowed to view links. Register or Login por si alguno desea realizar la prueba.

Además, necesitaremos alguna herramienta que modifique los parámetros que enviemos por POST. Yo usare Tamper Data que es un complemento de Firefox:

You are not allowed to view links. Register or Login

Una vez montado el formulario de contacto se vera algo así:


El primer paso será completar todos sus campos y abrie Tamper Data. Una vez hecho esto, damos en "Comenzar Modificación" (En el tamper data) y enviamos el formulario de contacto.
Seguido a esto, nos aparecerá una alerta en Tamper Data para modificar los datos que estamos enviados.


Damos en modificar, y revisamos los valores que está enviando del lado derecho, que son los que hemos cargado desde el formulario.


Ahora es momento de jugar con estos campos. Este formulario de contacto no filtra sus variables, asique colocaremos algún vector de XSS en sus parámetros.
En este caso, coloqué un simple alert en el campo correo.

<script>alert('XSS')</script>

Al dar en Aceptar, el sitio seguirá cargando con la nueva información suministrada...


Y como podrán apreciar, apareció el Alert con nuestro mensaje.

Espero que les sirva!

Saludos!
ANTRAX


Offline EPSILON

  • *
  • Ex-Staff
  • *****
  • Posts: 360
  • Actividad:
    0%
  • Country: ar
  • Reputación 0
  • [email protected]
    • View Profile

Re:XSS por POST

  • on: May 18, 2015, 11:36:37 pm
Muy bueno @You are not allowed to view links. Register or Login !, esto viene muy bien porque mucha gente cree o se limita a pensar que este bug solo se explota por GET al igual que las Inyecciones SQL y esto no es así, y no esta de más decir que también pueden utilizar Live HTTP Headers o BurpSuite para editar cabeceras ya que las considero de fácil uso.  Saludos!

Offline GENIOL

  • *
  • Underc0der
  • Posts: 29
  • Actividad:
    0%
  • Country: ar
  • Reputación 0
    • View Profile

Re: XSS por POST

  • on: August 16, 2021, 09:57:39 am
excelente post!!! muchas gracias por el aporte!! HailUnderc0de

Offline elshotta

  • *
  • Underc0der
  • Posts: 126
  • Actividad:
    0%
  • Reputación 1
    • View Profile

Re: XSS por POST

  • on: August 19, 2021, 01:34:44 pm
muy bueno,
pero entonces lo que quieres decir es que por el formulario normal no se puede poner el xss?
solo es capturando el valor con el tamperdata?

Offline WHK

  • *
  • Underc0der
  • Posts: 136
  • Actividad:
    0%
  • Country: cl
  • Reputación 13
  • Sin conocimiento no hay espíritu
    • View Profile
    • Yhojann

Re: XSS por POST

  • on: September 12, 2022, 01:12:54 pm
You are not allowed to view links. Register or Login
muy bueno,
pero entonces lo que quieres decir es que por el formulario normal no se puede poner el xss?
solo es capturando el valor con el tamperdata?

Un XSS es independiente si va via get, post, put, delete, etc, tampoco depende de un software en particular, de hecho un atacante no necesita que todas sus victimas tengan instalado el tamper data o el burpsuite, lo que importa es lo que el servidor recibe y lo que retorna, en otras palabras lo único que hay que hacer es que alguien pueda enviar involuntariamente una solicitud http (sin importar el método) y que en algún input pueda contener algún código malicioso que pueda ser retornado por el servidor con cabecera content type de tipo html, entonces, por ejemplo, podrás enviar una etiqueta <script> para que te lo retorne el mismo servidor y esta se ejecute, esto permite que si un usuario accede a algún html tuyo y este tiene instrucciones de redireccionar al usuario hacia una url (sin importar si es get o post) su navegador pueda ejecutar la instrucción que tu desees, como por ejemplo, obtener la cookie de sesion y enviarla hacia otro servidor si es que la cookie lo permite (debido al flag httponly).

Dale un vistazo a estos links:

- You are not allowed to view links. Register or Login
- You are not allowed to view links. Register or Login
- You are not allowed to view links. Register or Login - You are not allowed to view links. Register or Login