¿Por qué no se está ejecutando este código? [cerrado]

-2

Encontré un área en un sitio (no puedo revelar el nombre) que le permite ingresar información y la devuelve en este formulario:

<p>
    <strong>text here</strong>
</p>

No se filtra, por lo que puedes poner elementos como <img src=x> , y lo devolverá, pero no lo analiza y no puedo entender por qué no lo está analizando. Verifiqué si convierte los corchetes a Unicode, pero no lo hace.

¿Alguien sabe lo que está haciendo?

EDIT : convierte los corchetes a Unicode, pero ¿es posible omitir este filtro de alguna manera?

    
pregunta Jack 23.12.2016 - 19:39
fuente

1 respuesta

2

Debe incluir mucha más información, de lo contrario, esta pregunta no se puede responder. No creo que tengamos una pregunta de "por qué XSS no funciona", así que intentaré agregar una respuesta canónica aquí.

¿Por qué no funciona XSS?

Así que tienes un sitio web, toma tu entrada y te lo devuelve. ¡Esto podría ser vulnerable a XSS! Pero si ingresas una carga útil, no se ejecuta. ¿Ahora que?

Estas son las preguntas que debe tratar de responder:

  1. Codificación: ¿Cómo se devuelve realmente la entrada? : la parte importante no es cómo se ve la entrada una vez que el navegador la analiza, sino cómo se ve el código fuente. Así que deberías mirar eso. Utilice un proxy de intercepción (ZAP, Burp, etc.) o verifique el código fuente en su navegador. ¿Los caracteres relevantes como < , > , " , ' realmente se devuelven así? O están codificados, por ejemplo, como &lt; y así sucesivamente. Si están codificados, es probable que el sitio web no sea vulnerable (podría intentar diferentes codificaciones, etc. para omitir la codificación, pero es poco probable).
  2. Filtrado: ¿Se cambió la entrada de alguna otra manera? : los caracteres relevantes no están codificados, lo que significa que tiene una inyección de HTML como mínimo. Ahora necesita verificar si puede ingresar un contexto de Javascript. Son etiquetas como <script > ¿filtrado? ¿Puedes usar atributos de eventos como onMouseOver ? ¿Puedes usar otras etiquetas HTML interesantes como img , input , frame , etc.? El filtrado a menudo se rompe, por lo que incluso si se filtran cosas simples, investigue más a fondo.
  3. Filtros del navegador: ¿Por qué no se está ejecutando mi carga útil? : Ok, ahora sabes que el sitio web es vulnerable, tienes una buena carga útil como alert(1) , pero no pasa nada. ¿Has deshabilitado los filtros de tu navegador XSS? En caso de duda, use Firefox sin complementos, ya que no tiene filtro.
  4. Encabezado http://sabes que el sitio es vulnerable, sabes que tu navegador ejecutará las cargas útiles de XSS, pero aún así, ¿no pasa nada? Entonces deberías comprobar el encabezado HTTP. Es un conjunto de CSP? ¿Podría evitar la ejecución de scripts en línea? Si es así, y no puede cargar archivos .js a un origen de confianza, esto sigue siendo una vulnerabilidad, pero solo puede apuntar a navegadores más antiguos o se queda con una inyección de HTML (que, aunque es menos grave que XSS, todavía es bastante potente) .
respondido por el tim 23.12.2016 - 20:54
fuente

Lea otras preguntas en las etiquetas