Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: davidhs en Julio 08, 2016, 02:00:00 PM

Título: [SOLUCIONADO] Duda sobre vulnerabilidad
Publicado por: davidhs en Julio 08, 2016, 02:00:00 PM
Hola foro de Underc0de, hoy vengo con una duda, que es que alguien me explique como funciona un poco la vulnerabilidad http-method-tamper, a parte de explicarmela como sería la explotación y solución.

Muchas gracias de ante mano. :P!
Título: Re:Duda sobre vulnerabilidad
Publicado por: grep en Julio 08, 2016, 03:39:33 PM
HTTP Method Tampering (o HTTP Verb Tampering) es una técnica de ataque y/o pentesting que intenta explotar un recurso, que debería estar controlado y solo accesible a usuarios autenticados, ofrecido por el servidor Web. En este caso, el ataque se enfoca en acceder al recurso a través de un request con un método no controlado por el servidor.

Estos problemas suelen tener los servidores Apache 2.2/PHP, IIS 6.0, Apache 2.2.8, y TomCat 6.0. Puedes suponer este caso de una restricción en un archivo de configuración web.xml para una aplicación Java EE:

Código (xml) [Seleccionar]
<security-constraint>
  <web-resource-collection>
    <url-pattern>/admin/*</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
  </web-resource-collection>
  <auth-constraint>
    <role-name>admin</role-name>
  </auth-constraint>
</security-constraint>


Las reglas aseguran que cualquier GET o POST a un recurso dentro de admin/ será bloqueado para usuarios que no tengan el rol admin. Pero cualquier request que no sea un GET o POST, por ejemplo un HEAD, no será bloqueado.


http-method-tamper si mal no entiendo es un NSE (Nmap Scripting Engine) script para nmap que intenta acceder a recursos que respondan con un estado 401 (Unauthorized) a traves de requests con diferentes verbos o metodos. Si a cualquiera de estos requests se obtiene otro código de estado, entonces se supone que la URI es vulnerable.

http-method-tamper identifica una dirección con respuesta 401, y entonces envía un HEAD request, despues un POST request y por último un request con un método cuyo string es generado aleatoriamente.


Solucion: configurar bien el acceso a tus recursos (a traves de .htaccess en un servidor Apache) o configura tu Web server para filtrar todos los métodos con excepción de GET y POST, que suelen ser los más utilizados en back-end's que no son RESTful.

Fuentes:
http://www.imperva.com/resources/glossary?term=http_verb_tampering
https://www.owasp.org/index.php/Testing_for_HTTP_Methods_and_XST_%28OWASP-CM-008%29
https://nmap.org/nsedoc/scripts/http-method-tamper.html

Saludos
Título: Re:Duda sobre vulnerabilidad
Publicado por: davidhs en Julio 08, 2016, 07:12:39 PM
Muchísimas gracias, me ha servido de mucho la explicación grep :P