Estoy probando un escenario con proxy Burp.
-
Estoy ubicado en un sitio web
https://website.com/web -
Hay una opción allí para eliminar un elemento, al hacer clic en él, se envía una determinada solicitud POST (
XMLHttpRequest, no se realiza ninguna actualización de la página) donde puedo insertar una etiqueta<script>:POST /web/deleteItem HTTP/1.1 Host: website.com returnParameter=<script>alert('xss')</script> -
El método
deleteItemdevuelve lo siguiente:HTTP/1.1 200 OK Date: Tue, 31 Jan 2017 22:18:54 GMT X-XSS-Protection: 1; mode=block Content-Type: application/json;charset=UTF-8 ... {"status":"SUCCESS","result":"<script>alert('xss')</script>"} -
En un sitio web del paso # 1 hay funciones de JavaScript que analizan el JSON y muestran su valor de resultado en la pantalla
-
alertse muestra enhttps://website.com/web, por lo que el XSS reflejado se ejecutó con éxito.
Pero este escenario no es realista, ya que necesito atraer a un usuario al sitio web y ejecutar el XSS de alguna manera.
He intentado esto haciendo un formulario HTML POST simple y enviando los parámetros a https://website.com/web/deleteItem . Digamos que usaría phishing y el usuario enviaría el formulario.
La acción fue ejecutada, pero solo recibí una respuesta JSON . No había ninguna página en el paso # 1, por lo que en realidad no se mostraba nada como XSS, porque el usuario no estaba ubicado en https://website.com/web donde debería ejecutarse alert('XSS') . No estoy seguro de que sea posible enviar al usuario a la página # 1 y enviarlo a este JSON con XSS de alguna manera.
¿Podría haber una manera de ejecutar este escenario en condiciones realistas?