Vulnérabilité dans la création d’un .htaccess

Toujours lors de nos audits de sécurité, une faille particulièrement idiote qui revient très régulièrement et qui constitue un entry-point interessant est la mauvaise configuration d’une protection par le biais d’un htaccess. La plupart des administrateurs ou webmasters fouinent sur le net afin de créer leur .htaccess, et de fait, se retrouvent avec des configurations qu’ils n’ont pas tout à fait compris.

Le premier responsable de cette faille est, il me semble, le site http://www.commentcamarche.net/. Pourquoi cela ? Simplement parce qu’ils sortent premier sur la recherche « Création htaccess« .

Et comment nous proposent-ils de créer un htaccess ? Je cite:

Donc si l’on fait un tour rapide:

  • La première ligne donne la page où l’on doit rediriger lors d’une 403 (Erreur d’auth ou deny from all par exemple)
  • La seconde donne le path du fichier contenant les mots de passe
  • La troisième le chemin du fichier de groupe
  • La quatrième, c’est le wording du prompt login / pass
  • La cinquième donne le mode d’authentification, dans ce cas auth basic (mod_auth_basic)
  • Enfin, les trois dernières expliquent que pour exécuter les requêtes à l’aide des méthodes GET et POST, il faut être un utilisateur authentifié.

Tout cela est relativement schématisé, mais cela suffit à la compréhension de la suite de l’article. Ainsi, si je tente d’accéder à la page protégée, j’effectuerais une requête de type:

Et je vais donc atterir sur une 401 Authorization Required.
Où se situe alors l’astuce ? Apache (et probablement mod_php) ne gère pas correctement les requêtes avec des méthodes erronées. Je m’explique, si à la place de faire un GET ou un POST (mais aussi possiblement un HEAD/PUT/DELETE dans le contexte du htaccess), je fais un:

Apache me renverra le contenu de la page présente derrière /admin/index.php (200).

Comment corriger cette vulnérabilité ? Tout simplement en ôtant de notre htaccess la limite de méthode GET, POST. En effet, aucun intérêt de limiter à GET et POST le require valid-user si ce dernier est effectivement nécessaire. D’ailleurs dans les préconisations globales d’apache, ils recommandent de ne pas utiliser les limit lors de la création de htaccess. Je cite:

Partagez cet article !

    4 thoughts on “Vulnérabilité dans la création d’un .htaccess

    1. Fefaine dit :

      Je faisais partie des 70% jusqu’à il y a 5 minutes.
      Merci pour ce billet !

    2. pierz dit :

      Kikoo mon grand,

      Une petite chose à préciser, cette faille n’affecte que les fichiers php, si tu fais un GET /index.html ou target.txt tu auras bien une erreur 501 Bad Request.

      Le mod-php est peut être un peu responsable lui aussi.

      Pour exploiter la faille vite fait j’utilise burp proxy

      Proxy > Options > Match and Replace :
      request header ^GET TOTO

    3. yeye dit :

      merci pour l’info.

      Mais avez vous au moins alerté CCM ? Si on a 70% de sites mal proteges, c’est en (bonne ?) partie à cause de ce site…

    4. Renaud dit :

      Trop peut de monde alerte CCM, pour la simple et (bonne ?) raison que la faille .htaccess est en majeur partie connu par les hackers, et ils en régalent, crois moi..!

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *