
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.
nowafpls ist ein auf Jython basierendes Burp-Plugin.
https://github.com/assetnote/nowafpls/assets/5241936/dad77c3a-d550-4e5d-894d-027256137148
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
| 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) |