WAFW00F Matster 2 Réseaux Image et Paroles Spécialité : Réseaux Wafw00f: Web Application Firewall Detection Tool Réalisé par : Hassna LOUADAH Enseignant : Mr. Osman SALEM Décembre 2011 Hassna LOUADAH Page 1 WAFW00F Wafw00f: Web Application Firewall Detection Tool WafW00f, un script écrit en python, est un excellent outil capable de détecter les pare-feux des applications web (WAF). Cet outil est particulièrement utile lorsque le testeur de pénétration veut inspecter le serveur d'applications cible. WAFW00F: Permet de voir si il ya un Firewall (pare-feu) d’une application Web (WAF) dans le chemin (entre notre machine et notre cible). Un WAF est un type spécifique de pare-feu qui est adapté pour fonctionner avec les applications web. Il intercepte le trafic HTTP ou HTTPS et impose un ensemble de règles qui sont spécifique à la fonctionnalité des applications web. Ces règles incluent des fonctionnalités telles que la prévention des attaques par injection SQL ou par cross-site scripting. Dans notre cas, nous avons besoin de savoir s’il y a un WAF qui va interférer avec notre test de pénétration. Ce script Python, disponible sur http://code.google.com/p/waffit/ , accepte une ou plusieurs URL comme arguments et exécute une série de testes afin de déterminer: Si un WAF est en marche entre notre hôte et la cible ou non. Pour l’exécuter sur un système Backtrack 5: Il faut y aller à: Backtrack | Information Gathering | Web Application Analysis | IDS IPS Identification | waffit Où utiliser la console et exécuter les commandes suivante: # cd /pentest/web/waffit/ # ./wafw00f.py Avec la commande #python wafw00f.py -h On aura la fenêtre suivante : Hassna LOUADAH Page 2 WAFW00F Cette fenêtre montre les différentes options offertes. Pour lancer la détection, la commande suivante peut être utilisée : #python wafw00f.py le site en question (eg: http://www.xxxx.fr) La fenêtre suivante s’affichera Hassna LOUADAH Page 3 WAFW00F Ce résultat prouve le serveur d'applications cible est en marche derrière pare-feu (dotDefender, par exemple). En utilisant cette information on pourra par la suite investiguer les moyens possibles pour contourner le WAF. Il pourrait s'agir des techniques comme le paramètre HTTP la pollution, null-byte de remplacement, la normalisation, l'encodage chaîne URL malveillant en hexadécimal ou Unicode. L’exemple suivant est ressemble au premier mais cette fois ci avec l’option –v qui permet de voir les détails du test : Et la fenêtre suivante montre un autre exemple avec comme argument le site google: Hassna LOUADAH Page 4 WAFW00F Wafw00f a constaté que le site google est derrière un WAF et explique la raison pour laquelle cette détection est faite. Wafw00f lance une attaque et analyse la réponse, il compare la réponse avec une réponse normale et il constate s’il y a un WAF ou pas. En effet, la réponse dans le cas ou le site est derrière un WAF, mais ce n’est pas tout, Wafw00f en analysant la réponse peut détecter même de quel WAF il s’agit. WAFW00F est capable de détecter près de 20 WAF différents, on peut les avoirs grâce à la commande #python wafw00f.py -l Hassna LOUADAH Page 5 WAFW00F Conclusion: Wafw00f est un outil intéressant parce qu'il permet une prise d’empreintes sur le site cible. Plus on a récolté d’informations et de détails sur la cible, moins la stratégie d'attaque est difficile. Hassna LOUADAH Page 6