IIS - RequestFiltering para #

1

Encontré este enlace hoy que ejecuta XSS en el sitio para el que fue diseñado originalmente:

https://<site>/<page>.html/?#prettyPhoto=Not_FeelIng_Safe&%3Cimg%20src=%27x%27%20onerror=alert%287%29%3E&#4B

Intenté esto en mi sitio, que tiene el filtrado de solicitudes configurado en 404 en img , alert y onerror pero esta URL estaba permitida.

Agregué # para negar reglas y también lo agregué como una secuencia de denegación en la pestaña QueryStrings, pero todavía estaba permitido. Presumiblemente porque # es especial y cualquier cosa después de que no cuente como URL o Cadena de consulta.

¿Es aconsejable bloquear # si nuestro sitio (s) no lo necesita y, de ser así, cómo puedo negar # en IIS7?

    
pregunta DomBat 16.06.2015 - 11:53
fuente

2 respuestas

2

La cadena que sigue a # es el 'identificador de fragmento' y normalmente se usa para navegar a un elemento de anclaje dentro de un documento HTML (pero aquí se usa para simular la navegación de URL en una aplicación de una sola página).

El identificador del fragmento es utilizado exclusivamente por el lado del cliente del navegador y ni siquiera está incluido en la solicitud al servidor web, por lo que no puede filtrarlo en el lado del servidor en IIS o en cualquier otro servidor.

(No debe confiar en el filtrado de solicitudes de ASP.NET para la seguridad. Este es solo uno de los lugares donde falla).

Puedes intentar 'filtrarlo' en el lado del cliente incluyendo una ejecución <script> antes de cualquier otra secuencia de comandos, que sabotea la página y se niega a cargar más secuencias de comandos si detecta algo que considera 'malo' en location.hash , pero eso todavía está sujeto a todos los modos de falla de detección de entrada de lista negra que hacen que la Validación de la Solicitud sea una pérdida de tiempo para todos.

    
respondido por el bobince 16.06.2015 - 13:43
fuente
1

¿Qué navegador es este? Esto debería ser bloqueado automáticamente por el filtro Chromes XSS. Yo diría que el primer paso sería configurar un CSP adecuado enlace

Después de comenzar a mitigar los riesgos asociados con un compromiso, como el uso de cookies de solo http, el token CSRF y THEN, comience a hacer filtros de clientes como lo sugiere Bobince.

    
respondido por el Zachary Iles 17.06.2015 - 07:31
fuente

Lea otras preguntas en las etiquetas