Skip to content

Detect and bypass web application firewalls and protection systems

License

Notifications You must be signed in to change notification settings

Ekultek/WhatWaf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

WhatWaf?

WhatWaf is an advanced firewall detection tool who's goal is to give you the idea of "There's a WAF?". WhatWaf works by detecting a firewall on a web application, and attempting to detect a bypass (or two) for said firewall, on the specified target.

Features

  • Ability to run on a single URL with the -u/--url flag
  • Ability to run through a list of URL's with the -l/--list flag
  • Ability to detect over 40 different firewalls
  • Ability to try over 20 different tampering techniques
  • Ability to pass your own payloads either from a file or from the terminal
  • Payloads that are guaranteed to produce at least one WAF triggering
  • Ability to bypass firewalls using both SQLi techniques and cross site scripting techniques
  • Ability to run behind Tor
  • Ability to run behind multiple proxy types (socks4, socks5, http, https)
  • Ability to use a random user agent, personal user agent, or custom default user agent
  • More to come...

Installation

Installing whatwaf is super easy, all you have to do is the following:

Have Python 2.7, Python 3.x compatibility is being implemented soon:

sudo -s << EOF
git clone https://github.com/ekultek/whatwaf.git
cd whatwaf
chmod +x whatwaf.py
pip2 install -r requirements.txt
./whatwaf.py --help

Proof of concept

First we'll run the website through WhatWaf and figure out which firewall protects it (if any): item1

Next we'll go to that website and see what the page looks like: item2

Hmm.. that doesn't really look like Cloudflare does it? Let's check what the HTTP headers server and cookies say: item4

And finally, lets try one of the bypasses that it tells us to try: item3

Get involved!

If you want to make some tamper scripts, want to add some functionality or just want to make something look better. Getting involved is easy:

  1. Fork the repository
  2. Edit the code to your liking
  3. Send a pull request

I'm always looking for some helpful people out there, and would love help with this little side project I got going on, Thanks!