
Плагин Burp для обхода WAF с помощью вставки мусорных данных
У большинства межсетевых экранов веб-приложений (WAF) есть ограничения на объём данных, которые они могут обработать при отправке тела запроса. Это означает, что для HTTP-запросов, содержащих тело запроса (например, POST, PUT, PATCH и т.д.), обычно можно обойти WAF, просто добавив в начало мусорные данные.
Когда запрос дополняется этими мусорными данными, WAF обрабатывает и анализирует до X kb запроса, но всё, что находится за пределами ограничений WAF, проходит напрямую.
nowafpls — это простой плагин для Burp, который контекстно вставляет эти мусорные данные в ваш HTTP-запрос на вкладке Repeater. Вы можете выбрать предустановленный объём мусорных данных для вставки или вставить произвольный объём, выбрав опцию «Custom».
Этот инструмент — всего около 80 строк Python, он невероятно прост, но работает с большинством WAF, lol.
| WAF Provider | Maximum Request Body Inspection Size Limit |
|---|
| Cloudflare | 128 КБ для механизма правил, до 500 МБ для enterprise |
| AWS WAF | 8 КБ - 64 КБ (настраивается в зависимости от сервиса) |
| Akamai | 8 КБ - 128 КБ |
| Azure WAF | 128 КБ |
| Fortiweb by Fortinet | 100 МБ |
| Barracuda WAF | 64 КБ |
| Sucuri | 10 МБ |
| Radware AppWall | до 1 ГБ для облачного WAF |
| F5 BIG-IP WAAP | 20 МБ (настраивается) |
| Palo Alto | 10 МБ |
| Cloud Armor by Google | 8 КБ (можно увеличить до 128 КБ) |
nowafpls — это плагин для Burp на основе Jython.
nowafpls автоматически вставит мусорные данные в соответствии с типом запроса (URLEncoded/XML/JSON).
Версию этого плагина для Caido поддерживает @Rhynorater; она доступна в следующем gist:
https://gist.github.com/Rhynorater/ace68d4976357ca0937cb4669f303306
или в EvenBetter Workflow Library.
MIT