Así que estoy bastante seguro de saber la respuesta a esta pregunta, pero quiero estar 100% seguro, así que estoy buscando información aquí. Se informó de una vulnerabilidad en un sitio mío que se parece a esto:
GET mysite.com/page<script>alert('XSS');</script>
Si utiliza curl, puede ver la carga útil en la respuesta, del mismo modo, si intercepta una solicitud del navegador con un proxy y la edita a la carga útil anterior que ejecutará.
Sin embargo, el backend no está decodificando la URL. Si este enlace se publica en algún foro y se hace clic en él, el navegador codificará la URL y la respuesta se verá así:
.... mysite.com/page%3Cscript%3Ealert(%27XSS%27)%3B%3C%2Fscript%3E ....
Esto obviamente no se ejecuta. Para mí, esto no representa ninguna amenaza en absoluto porque la única forma de ejecutarlo con éxito es con un ataque MITM. Si hay alguien sentado en la red que puede ver el tráfico y editarlo, no tendría sentido explotar XSS porque tiene todo lo que quiere de todos modos.
¿Es este un análisis correcto? ¿Hay alguna forma de hacer que un usuario haga clic en un enlace o publique algún formulario que no codifique la URL que no conozco?