Bypassing .NET Request Validation

Iniciado por ZanGetsu, Abril 17, 2013, 02:50:29 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Bueno en el siguiente post se mostrara como evadir el request validation, una seguridad prestada por aplicaciones Web desarrolladas con .NET (asp.net), en que consiste, consiste en el filtrado de caracteres de tipo XSS (entre otros) si deseas saber mas del tema puedes verlo AQUI: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



Continuando, al realizar un ataque XSS en una web asp protegida con "Request Validation", es comun obtener un mensaje como este:



Lo cual no es impedimento para nada xd, pero cabe mencionar que muchas Webmasters se confian de este tipo de seguridad y aveces omiten por completo la vulnerabilidad confiando en este filtro.

Bueno, como evadimos esto ?

Una forma encontrada por Zamir Paltiel, es abusar de la flexibilidad de lenguajes como HTML y Javascript + la tolerancia a fallos que tienen los navegadores para encontrar alguna forma "extraña" de ejecutar el script (en este caso Internet Explorer) de la siguiente forma:

<%tag style="foo:expression(alert('XSS'))" >

El tag "tag", con el símbolo porcentaje delante, es interpretado como un tag HTML correcto por Internet Explorer, por lo que es posible emplear las técnicas habituales, como por ejemplo utilizar el parámetro "style" para introducir la ejecución de un Alert en Javascript:



Saludos,

Mas info y fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


A mi no me funciona, se veía bueno pero lastima que no pasa nada.

Lo probé en internet explorer 9 sobre Windows 7 profesional.

De hecho ayer habia estado haciendo pruebas justamente de esto, hice un script en php creando etiquetas dinamicas de esta forma:

<<?php echo chr($i); ?>a style="display: block; width: 30px; height: 4px; background-color:red;" />

Desde php con un for de 255 loops no pude validar ningún carácter, ni con firefox ni con internet explorer a excepción de los carácteres alfanuméricos pero nada mas.

De hecho tengo un dato curioso:
IIS no filtra la validación de una request al pasar números al comienzo del tag, por ejemplo <9></9>, pasa sin problemas al igual que <:script><:/script>, de hecho con algunos carácteres especiales es posible ejecutar un xss pero solo en exploradores antiguos como ie6 y netscape, creo que opera tambien pero no estoy seguro.

El asunto es que estas etiquetas no son válidas por ningún explorador moderno, intenté con <! para ver si podía inyectar una cabecera de tipo de página, comentarios, xml con <? pero nada.

Lo que si puedes inyectar son carácteres de string xml:
<[CDATA[ y ]]> pero solo servirían sobre inyecciones en XML.
- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Ya lo testeé, funciona y de forma persistente pero solo desde internet explorer 8 hacia abajo.

- No tienes permitido ver los links. Registrarse o Entrar a mi cuenta - No tienes permitido ver los links. Registrarse o Entrar a mi cuenta