Wafw00f: Web Application Firewall Detection Tool

publicité
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
Téléchargement