Por qué importa
Los controles de acceso a menudo vigilan solo las puertas por las que los desarrolladores esperan que entren los atacantes. Un muro de login colocado delante de GET y POST puede dejar HEAD, OPTIONS, PUT y TRACE de par en par, y un atacante que simplemente cambia el verbo entra sin más. Como el control sigue pareciendo correcto en un navegador normal, donde cada petición es un GET o un POST, este fallo puede sobrevivir en producción durante años.
La manipulación de métodos HTTP es una forma de manual de control de acceso roto, el riesgo número uno del OWASP Top 10, y es trivial de probar en cuanto interceptas una petición con un proxy como Burp Suite.
Cómo funciona
Una ruta de administración protegida devuelve 401 en el navegador. Quien audita captura la petición y la reenvía con distintos métodos, sin cambiar nada más:
GET /admin -> 401 Unauthorized
POST /admin -> 401 Unauthorized
HEAD /admin -> 200 OK
OPTIONS /admin -> 200 OK
El 200 en HEAD significa que el servidor procesó la petición como válida. La mala configuración subyacente suele tener la pinta de un bloque de Apache que solo enumera dos métodos:
<Limit GET POST>
require valid-user
</Limit>
Todo lo que no se nombra, HEAD, OPTIONS, TRACE y PUT, se salta por completo la comprobación de autenticación. Una variante relacionada abusa de los frameworks que enrutan un método inesperado al mismo manejador pero aplican una ruta de autorización distinta y más débil.
Por qué persiste
El bug sobrevive porque los desarrolladores razonan sobre los dos métodos que un navegador usa de verdad y olvidan el resto de la especificación HTTP. La lista de permitidos da sensación de seguridad, pero cualquier método que se quede fuera de la lista no hereda ninguna protección. Los balanceadores de carga, las reglas heredadas de mod_auth y los fragmentos de configuración copiados propagan el mismo patrón por muchas aplicaciones.
Cómo probarla
Para cada endpoint protegido, reenvía la petición con el conjunto completo de métodos: GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH y TRACE. Vigila cualquier método que devuelva un 200 o un cuerpo distinto, y compara los códigos de estado con cuidado, ya que un 405 es sano mientras que un 200 en un verbo inesperado es un hallazgo. Los métodos arbitrarios o inventados a veces revelan una gestión aún más laxa.
Prevención
Impón autorización en todos los métodos por defecto y permite solo los verbos que un endpoint realmente necesita. Reemplaza los bloques de configuración específicos de un método por una política de denegación por defecto, devuelve 405 para los métodos no soportados, desactiva TRACE y prueba cada endpoint restringido con el conjunto completo de métodos para verificar que el control no se puede sortear.
Cómo enseñamos Manipulación de métodos HTTP
En nuestro Cybersecurity Bootcamp, no solo aprenderás sobre Manipulación de métodos HTTP en teoría. Practicarás con herramientas reales en laboratorios prácticos, guiado por profesionales de la industria que usan estos conceptos a diario.
Cubierto en:
Módulo 10: Pentesting y Hacking Ético
360+ horas de formación experta • CompTIA Security+ incluido