GithubHelp home page GithubHelp logo

nowafpls's Introduction

nowafpls

Table of Contents

nowafpls

Most web application firewalls (WAFs) have limitations for how much data they can process when a request body is sent. This means for HTTP requests that contain a request body (i.e. POST, PUT, PATCH etc), it is usually possible to bypass the WAF by simply prepending junk data.

When the request is padded with this junk data, the WAF will process up to X kb of the request and analyze it, but everything after the limits of the WAF will pass straight through.

nowafpls is a simple Burp plugin which will contextually insert this junk data into your HTTP request inside the repeater tab. You can select from a preset amount of junk data you want inserted, or you can insert an arbitrary amount of junk data by selecting the "Custom" option.

This tool is just 80 or so lines of Python, it's incredibly simple but works for most WAFs lol.

Documented WAF Limitations

WAF Provider Maximum Request Body Inspection Size Limit
Cloudflare 128 KB for ruleset engine, up to 500 MB for enterprise
AWS WAF 8 KB - 64 KB (configurable depending on service)
Akamai 8 KB - 128 KB
Azure WAF 128 KB
Fortiweb by Fortinet 100 MB
Barracuda WAF 64 KB
Sucuri 10 MB
Radware AppWall up to 1 GB for cloud WAF
F5 BIG-IP WAAP 20 MB (configurable)
Palo Alto 10 MB
Cloud Armor by Google 8 KB (can be increased to 128 KB)

Installing nowafpls

nowafpls is a Jython based Burp Plugin.

  1. Clone or download this repo.
  2. Go to the extensions tab in Burp Suite.
  3. Click "Add"
  4. Select Extension Type - Python
  5. Select "nowafpls.py" that you downloaded in Step 1

Using nowafpls

nowafpls-small.mp4
  1. Send any request to the repeater tab that you'd like to bypass WAF for.
  2. Put your cursor in a place you would like to insert junk data.
  3. Right click -> Extensions -> nowafpls
  4. Select how much junk data you want to insert
  5. Click "OK"

nowafpls will insert junk data as per the type of request (URLEncoded/XML/JSON) automatically.

Caido Version

The Caido version of this plugin is maintained by @Rhynorater and can be found at the below gist:

https://gist.github.com/Rhynorater/ace68d4976357ca0937cb4669f303306

or in the EvenBetter Workflow Library.

Authors

  • Shubham Shah - Initial work - github

License

MIT

nowafpls's People

Contributors

infosec-au avatar rhynorater avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.