Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: Shell Root en 13 Julio 2011, 18:32 pm



Título: HPC: HTTP Parameter Contamination
Publicado por: Shell Root en 13 Julio 2011, 18:32 pm
HPC: HTTP Parameter Contamination

Curioso y útil el trabajo presentado por RSnake, j0rgan y lightos sobre la técnica que ellos han llamado HPC, es decir, HTTP Parameter Contamination, que puede ser utilizada fundamentalmente para dos tareas:

1) Hacer Fingerprinting de servidores web.
2) Saltarse filtros en los WAF (Web Application Firewalls).

La idea de la técnica es contaminar el query string de una petición HTTP con caracteres que los servidores web no acepten, y reemplacen, obteniendo un resultado distinto del esperado por el programador, y por lo filtros de seguriad.

Para ello han realizado un análisis basado en el envío de peticiones a servidores GET de caracteres no permitidos en los propios nombres o valores de los parámetros de un quey string para ver qué le estaba llegando realmente a la aplicación. Lo curioso, como se puede ver en las tablas, es que hay muchas más modificaciones de las esperadas, que abre un abanico de posibilidades a la hora de saltar filtros.

Por ejemplo, en un servidor Web con Apache, las peticiones que devolvieron cambios en la Query String fueron las siguientes:

(http://4.bp.blogspot.com/-8DmwzjGlCIM/Th03Hbn7d3I/AAAAAAAAINw/ae3GIhWZglw/s1600/Apache.jpg)
Figura 1: HPC en Apache

En estas pruebas llama poderosamente la atención el reemplazao del caracter [ por un caracter _ lo que abre la posibilidad de llamar a los famosos procedimientos almacenados de MS SQL Server y saltarse los filtros de ModSecurity, como explican en su paper.

(http://2.bp.blogspot.com/-IdDDbsVgBcI/Th03IFF6A9I/AAAAAAAAIOI/yePPRe-ceJo/s1600/ModSecurityBypass.jpg)
Figura 2: Saltarse modsecurity y llamar a un procedimiento almacenado con HPC

En el caso de IIS también sucede algo similar, y estas son las pruebas que produjeron cambios en el comportamiento

(http://2.bp.blogspot.com/-zQbyUtIoPa4/Th03Hp-cC1I/AAAAAAAAIN4/_lVJK1zByCY/s1600/IIS6.jpg)
Figura 3: HPC en IIS 6

Por supuesto, en este caso, es el caracter nulo el que puede usarse cómodamente para saltarse el URL Filtering de, por ejemplo, los ataques LFI que usan la escalada de directorios con los ..

(http://1.bp.blogspot.com/-JkgaPUaq0NY/Th03ISTsMPI/AAAAAAAAIOQ/YcyysNmxTzs/s1600/URLScan.jpg)
Figura 4: Evasión de URL Filtering con HPC

Y en el caso de servidores con Tomcat con JSP, sucede más o menos lo mismo, pero con otras poluciones HPC.

(http://2.bp.blogspot.com/-zXey3mlbAZU/Th03IF6WOpI/AAAAAAAAIOA/nvxSCwW2X4A/s1600/Tomcat.jpg)
Figura 5: HPC en Tomacat con JSP

En definitiva, un paper curioso que puede resultar muy útil, y que hará que haya que modificar muchas aplicaciones y scripts para aprovechar estas características de los servidores web en ataques SQL Injection. Puedes descargalo en PDF desde: HPC: HTTP Parameter Contamination (http://www.securityvibes.com/servlet/JiveServlet/previewBody/1349-102-1-1364/Http%20Parameter%20Contamination%20-%20Ivan%20Markovic%20NSS.pdf).

Fuente: elladodelmal.com (http://www.elladodelmal.com/)


Título: Re: HPC: HTTP Parameter Contamination
Publicado por: ~ Yoya ~ en 15 Julio 2011, 16:50 pm
muy buena informacion.

Saludos.