Estoy intentando ejecutar una carga útil XSS en un campo de búsqueda que toma mi entrada de esta manera:
<input name="q" id="gsasearch" type="text" value="My Input"></input>
Observaciones:
-
Se filtran
<
,>
y"
. Sin embargo, la codificación HTML de estos caracteres funciona. - La entrada está codificada en URL y la URL decodificada y mostrada para mí.
- No hay parámetros.
La carga útil utilizada es la versión codificada en HTML de qq"><script>alert('xss')</script>
.
Sin embargo, todo lo que veo en la página de resultados es qq"><script>alert('xss')</script>
.
XSS no se ejecuta tanto en Chrome como en IE. Si inspecciono el elemento, veo esto:
<input name="q" id="gsasearch" type="text" value="qq"><script>alert('xss')</script>"></input>
Después de usar F2 en las herramientas de desarrollo, pude ver que "
se convierte a "
, como se muestra a continuación:
<input name="q" id="gsasearch" type="text" value="qq**"**><script>alert('xss')</script>"></input>
Entonces,
I / p - > URL codificada - > URL decodificada - > HTML codificado si es un "
¿Hay alguna manera de evitar esto?