Bypass the WAF (Web Application Firewall)
Pour l'introduction, j'ai trouvé cette définition sur Wikipédia :
Un Web Application Firewall (WAF) est un type de pare-feu qui protège le serveur d'applications Web dans le backend contre diverses attaques.
Le WAF garantit que la sécurité du serveur Web n'est pas compromise en examinant les paquets de requête HTTP / HTTPS et les modèles de trafic Web.
Pour une entreprise qui souhaite "protéger" ses applications Web lorsqu'elles sont exposées sur Internet, ce type de solution est inévitable. Encore faut-il configurer correctement ses serveurs pour éviter de "se retrouver à poil".
Déjà que je ne suis pas "fan" des solutions WAF en mode SaaS pour tout un tas de raisons.
En commençant par le cas "Cloud Flare", voulez-vous connaitre votre voisin ?
Plus sérieusement, un attaquant vas commencer par déterminer s'il est possible de passer outre le WAF. En effet, sous certaines conditions ce n'est pas impossible.
Pour ne pas faire de "mauvaises publicités" je vais "anonymizer" un maximum.
Nous savons que notre site Internet utilise une solution WAF de type SaaS (qui n'est pas Cloud Flare). La commande "nslookup <www.lesite.com>" nous renvois le résultat suivant.
Rien de magique, mais avec le résultat obtenu nous pouvons commencer l'étape de reconnaissance passive.
Cette étape va permettre de récolter légitimement des informations. Dans notre cas pour trouver l'adresse IP d'un site qui se cache "mal" derrière un WAF.
Cette article a pour objectif de mettre en évidence qu'un pourcentage élevé de sites Internet disposant d'un WAF est monnaies courante. Dans un monde où il faut faire des économies :-) payer pour une solution mal implémenté coté client, ça fait mal...
Pour en savoir plus sur les méthodes de reconnaissances, il y a une formation pour ça ;-)
Du coup, pour cette partie, il faudra venir à la formation, ou demander un audit :-P
Considérons que nous avons obtenu la réel adresse IP de notre site Web (mixte entre recherches manuelles et automatisées).
Avec Burp ou Zap (je préfère de loin Burp), nous pouvons observer la requête légitime.
En suite forger cette même requête avec l'adresse IP obtenu lors de la phase de reconnaissance passive.
Il ne reste qu'à comparer les deux requêtes, histoire d'être sûre :-) mais bon vu la réponse précédante…
Si ça "match" nous pouvons modifier notre fichier "hosts" pour bypasser le WAF.
Dans de bonnes conditions cette méthode prend moins de 10 minutes.