Web security

   Failles include, XSS, CRLF, injection SQL, bypass, etc…

Skip to: Content | Sidebar | Footer

logo

Contourner un .htaccess

23 août, 2010 (18:06) | Failles | Rédigé par: Mathieu

* * * * ½ 6 vote

Introduction

L’idee de cet article, c’est que les fichiers .htaccess, servant a proteger l’acces a certains repertoires ou fichiers par l’intermediaire de mots de passe, peuvent se contourner s’ils ne sont pas bien rediges. Le problème, c’est qu’il existe beaucoup de tutoriels sur les fichiers .htaccess qui incluent la faille, aussi, bon nombre de sites la possèdent.

Pre-requis

Les requêtes HTTP, Les fichiers .htaccess.

La faille

Le contournement de la protection est du a une petite faiblesse d’apache lors de l’interpretation des requêtes HTTP. En effet, nous savons qu’il existe 2 methodes pour acceder a un site web : GET et POST. Voici un exemple de requête GET :

GET dossierVulnerable/ HTTP/1.1
Host: www.host.com
Connection: Close

Maintenant, ce qu’il faut savoir, c’est qu’Apache ne reconnait pas seulement les methodes GET et POST mais aussi toutes celles que nous voudrions qu’il accepte :D . Je m’explique : si, lors de la construction de notre requête HTTP, nous échangeons le nom de la methode d’acces (GET ou POST) par un nom de notre choix (GHOST par exemple), Apache nous renverra les données de la page demandée comme si la methode GHOST lui était connue.

Voici la requête modifiée d’apres l’exemple plus haut :

GHOST dossierVulnerable/ HTTP/1.1
Host: www.host.com
Connection: Close

Ceci constitue le premier aspect de la faille, mais il en faut plus pour contourner les protections. Il faut en effet que le propriétaire du site est protege ses fichiers sensibles par l’intermediaire d’un fichier .htaccess en utilisant la directive LIMIT. Aussi, pour le bien de cet article, admettons qu’un particulier ai protege ses fichiers sensibles par un fichier .htaccess en utilisant cette fameuse directive :


  AuthUserFile /chemin d'acces vers le fichier .htpasswd
  AuthName "Zone protegee"
  AuthType Basic
  
    require valid-user
  

Ce fichier indique à Apache de refuser toute requête d’acces au fichier par POST ou GET tant que l’utilisateur n’est pas identifié avec un login et un mot de passe apparaissant dans le fichier .htpasswd correspondant.

Aussi, sachant que l’on peut envoyer des requêtes autres que GET ou POST sans que cela ne gene Apache, si l’on tentait d’executer la requête modifiée (voir plus haut), le serveur nous autoriserait tout naturellement l’acces a ce fichier, et ca marche bien sur pour les dossiers !

Protection

Se proteger de cette faille est relativement simple : il ne faut pas utiliser la directive LIMIT :) ( c’est d’ailleurs ce qu’Apache préconise ).

Limites

Le contournement des fichiers .htaccess par cette methode se limitent cependant a la methode GET. En effet, injecter des données via la methode POST en utilisant cette faille semble impossible.

Outils

Afin de tester cette méthode, vous aurez besoins soit :

  • d’utiliser un plugin firefox ( LiveHTTPHeaders par exemple )
  • de créer vous-même les requêtes ( en utilisant CURL par exemple )

Post to Twitter Post to Delicious Post to Facebook Post to MySpace

Partager : Post to Google Buzz Post to Twitter Post to Delicious Post to Facebook Post to MySpace

Ecrire un commentaire