htaccess Trucos (‘Verbo manipulación indebida’)

Original fecha: 08/10/2012

Intro

Se ha producido una gran cantidad de entusiasmo en torno a la nueva herramienta htaccess omisión de autenticación llamado HTExploit ( hipertexto Acceso Exploit [1]), que fue presentado recientemente en la estación de Arsenal en Blackhat EE.UU. 2012. Esta herramienta abusa de un ataque muy vieja hecha posible debido a un problema de configuración htaccess común. Siendo una industria que ama a nombrar las cosas viejas de nuevo, que ahora llamamos este ataque HTTP Verbo manipulación.

HTTP Verbo Manipulación

HTTP Verb La manipulación es una idea que se ha hablado en los escenarios de ataque ya en 2004 [2]. Los ataques se deriva de la restricción de recursos con base en una lista negra de color blanco o de los métodos de http. Los métodos fuera de los definidos en esta lista restringida pueden haber consecuencias no deseadas como la de permitir a un atacante eludir el requisito de autenticación. Echemos un vistazo a un archivo htaccess de ejemplo que utiliza la directiva LÍMITE problemática:

AuthName «restringir posting»

AuthUserFile / usr / local / etc / httpd / usuarios locales


* http://www.apacheweek.com/features/userauth
La idea pretendida de la autora era permitir que sólo los del grupo de personal para publicar contenido en el recurso restringido (s). Por desgracia para el desarrollador, esto es exactamente cómo funciona. Esto sólo se limita al método HTTP POST para requerir autenticación de grupo personal, cualquier otro método HTTP como GET y PUT pasará por alto este requisito de autenticación.

CABEZA Bypass

Así que el desarrollador decidió rechazar métodos como PUT, DELETE, y opciones en el servidor web y luego sólo permiten los métodos GET y POST de usuarios autenticados. Modificaron su htaccess para parecerse a:

AuthName «restringir el acceso»

TipoAut AuthUserFile / usr / local / etc / httpd / usuarios locales básicos


En 2008 otro periódico fue puesto en libertad [3] que llamó el ataque y señaló que el RFC para http / 1,1 [4] dice para tratar las solicitudes de cabeza como obtener solicitudes en los datos devueltos.

«La metainformación contenida en los encabezados HTTP en respuesta a una solicitud de la cabeza debe ser idéntica a la información que se envíe en respuesta a una petición GET. «

Esto nos permite enviar una solicitud HEAD para eludir esta restricción de límite y recuperar el contenido sin necesidad de autenticación.

Método personalizado

Por último, digamos que el desarrollador pasó por el HTTP RFC y limita todos los métodos conocidos, incluso los negado en el servidor web. Uno puede pensar que esto protegería el recurso (s) de todos los métodos conocidos. Echa un vistazo a el nuevo ejemplo:

AuthName «restringir todos los métodos»

TipoAut AuthUserFile / usr / local / etc / httpd / usuarios locales básicos
POSTE consiguen puestos BORRAR Spacejump DEBUG OPCIONES TRACE CONNECT PROPFIND LOCK UNLOCK PROPPATCH MKCOL COPIA MOVER>

En realidad, todo lo que es convocada por Apache se muestra de nuevo como si fuera recuperado por GET. Este fue creado para aprovechar las ventajas de los módulos que pueden utilizar métodos personalizados, como WebDav. En este caso, podemos crear nuestro propio método HTTP y usarlo para recuperar contenidos, sin pasar por ningún tipo de restricción de límite. La herramienta utiliza HTExploit «potato», mientras que la de papel a partir de 2004 utiliza «Bilbao».

Protección

El primer estilo de la protección es el uso de la directiva en lugar de. LimitExcept provoca un límite para ser colocado en cualquier método excepto los especificados. Esto le permite requerir la autenticación de POST y GET y negar cualquier otro método http de acceso al recurso. Este sería el resultado:

AuthName «restringir todos los métodos excepto»

AuthType Basic AuthUserFile / usr / local / etc / httpd / usuarios locales

requerir personal grupo

El segundo estilo de la protección es eliminar por completo cualquier tipo de límite método http y sólo requieren que los usuarios autenticados para acceder al recurso (s). Esto simplemente eliminar cualquier directiva límite:

AuthName grupo «restringir todos los métodos excepto»

AuthType Basic AuthUserFile / usr / local / etc / httpd / usuarios locales
requerir personal

Referencias
[1] http://www.mkit.com.ar/labs/htexploit/ – Herramienta HTExploit
[2] www.kernelpanik.org / docs / kernelpanik / bme.eng.pdf – htaccess original Métodos de Ataque mala configuración
[3] https://www.aspectsecurity.com/research/aspsec_presentations/download-bypassing-web-authentication-and-authorization-with-http-verb-tampering/ – CABEZA Bypass
[4] http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html – RFC HTTP HTTP/1.1 Métodos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *