
Burp-Plugin zur Umgehung von WAFs durch Einfügen von Junk-Daten
Die meisten Web Application Firewalls (WAFs) haben Einschränkungen, wie viele Daten sie verarbeiten können, wenn ein Anfragetext gesendet wird. Das bedeutet, dass es bei HTTP-Anfragen, die einen Anfragetext enthalten (z. B. POST, PUT, PATCH usw.), normalerweise möglich ist, die WAF zu umgehen, indem man einfach Junk-Daten voranstellt.
Wird die Anfrage mit diesen Junk-Daten aufgefüllt, verarbeitet die WAF bis zu X kb der Anfrage und analysiert sie, aber alles, was über die Grenzen der WAF hinausgeht, passiert ungehindert.
nowafpls ist ein einfaches Burp-Plugin, das diese Junk-Daten kontextbezogen in Ihre HTTP-Anfrage im Repeater-Tab einfügt. Sie können aus einer voreingestellten Menge an Junk-Daten wählen, die eingefügt werden sollen, oder Sie können eine beliebige Menge an Junk-Daten einfügen, indem Sie die Option „Custom“ auswählen.
Dieses Tool umfasst nur etwa 80 Zeilen Python, es ist unglaublich einfach, funktioniert aber bei den meisten WAFs lol.
| WAF-Anbieter | Maximales Inspektionslimit für Anfragetexte (Request Body) |
|---|
| Cloudflare | 128 KB für Ruleset-Engine, bis zu 500 MB für Enterprise |
| AWS WAF | 8 KB - 64 KB (konfigurierbar je nach Dienst) |
| Akamai | 8 KB - 128 KB |
| Azure WAF | 128 KB |
| Fortiweb von Fortinet | 100 MB |
| Barracuda WAF | 64 KB |
| Sucuri | 10 MB |
| Radware AppWall | bis zu 1 GB für Cloud-WAF |
| F5 BIG-IP WAAP | 20 MB (konfigurierbar) |
| Palo Alto | 10 MB |
| Cloud Armor von Google | 8 KB (kann auf 128 KB erhöht werden) |
nowafpls ist ein auf Jython basierendes Burp-Plugin.
nowafpls fügt die Junk-Daten automatisch entsprechend des Anfragetyps (URLEncoded/XML/JSON) ein.
Die Caido-Version dieses Plugins wird von @Rhynorater gepflegt und ist im folgenden Gist zu finden:
https://gist.github.com/Rhynorater/ace68d4976357ca0937cb4669f303306
oder in der EvenBetter Workflow Library.
MIT