
정크 데이터 삽입을 통한 WAF 우회용 Burp 플러그인
대부분의 웹 애플리케이션 방화벽(WAF)은 요청 본문이 전송될 때 처리할 수 있는 데이터의 양에 제한이 있습니다. 즉, 요청 본문을 포함하는 HTTP 요청(예: POST, PUT, PATCH 등)의 경우, 단순히 정크 데이터를 앞에 추가하면 WAF를 우회할 수 있는 경우가 많습니다.
요청에 이 정크 데이터가 채워지면 WAF는 요청의 최대 X kb까지만 처리하고 분석하지만, WAF의 한도를 초과하는 모든 데이터는 그대로 통과합니다.
nowafpls는 리피터 탭의 HTTP 요청에 이 정크 데이터를 문맥에 맞게 삽입하는 간단한 Burp 플러그인입니다. 삽입할 정크 데이터의 양을 사전 설정된 값 중에서 선택하거나, "Custom" 옵션을 선택하여 임의의 양을 삽입할 수 있습니다.
이 도구는 고작 80줄 정도의 Python으로 작성되었으며, 매우 단순하지만 대부분의 WAF에서 작동합니다 ㅋㅋ.
| WAF 공급업체 | 최대 요청 본문 검사 크기 제한 |
|---|---|
| Cloudflare | 룰셋 엔진용 128 KB, 엔터프라이즈용 최대 500 MB |
| AWS WAF | 8 KB - 64 KB (서비스에 따라 구성 가능) |
| Akamai | 8 KB - 128 KB |
| Azure WAF | 128 KB |
| Fortiweb by Fortinet | 100 MB |
| Barracuda WAF | 64 KB |
| Sucuri | 10 MB |
| Radware AppWall | 클라우드 WAF의 경우 최대 1 GB |
| F5 BIG-IP WAAP | 20 MB (구성 가능) |
| Palo Alto | 10 MB |
| Cloud Armor by Google | 8 KB (128 KB까지 확장 가능) |
nowafpls는 Jython 기반 Burp 플러그인입니다.
https://github.com/assetnote/nowafpls/assets/5241936/dad77c3a-d550-4e5d-894d-027256137148
nowafpls는 요청 유형(URLEncoded/XML/JSON)에 따라 정크 데이터를 자동으로 삽입합니다.
이 플러그인의 Caido 버전은 @Rhynorater가 유지 관리하며 아래 gist에서 찾을 수 있습니다:
https://gist.github.com/Rhynorater/ace68d4976357ca0937cb4669f303306
또는 EvenBetter Workflow Library에 있습니다.
MIT