• Stars
    star
    328
  • Rank 128,352 (Top 3 %)
  • Language
    Java
  • Created about 10 years ago
  • Updated almost 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Add headers to all Burp requests to bypass some WAF products

bypasswaf

Add headers to all Burp requests to bypass some WAF products. This extension will automatically add the following headers to all requests.

  X-Originating-IP: 127.0.0.1
  X-Forwarded-For: 127.0.0.1
  X-Remote-IP: 127.0.0.1
  X-Remote-Addr: 127.0.0.1
 Β X-Client-IP: 127.0.0.1

Usage

Steps include:

  1. Add extension to burp
  2. Create a session handling rule in Burp that invokes this extension
  3. Modify the scope to include applicable tools and URLs
  4. Configure the bypass options on the "Bypass WAF" tab
  5. Test away

More information can be found at: https://www.codewatch.org/blog/?p=408

Features

All of the features are based on Jason Haddix's work found here, and Ivan Ristic's WAF bypass work found here and here.

Bypass WAF contains the following features:

A description of each feature follows:

  1. Users can modify the X-Originating-IP, X-Forwarded-For, X-Remote-IP, X-Remote-Addr headers sent in each request. This is probably the top bypass technique i the tool. It isn't unusual for a WAF to be configured to trust itself (127.0.0.1) or an upstream proxy device, which is what this bypass targets.
  2. The "Content-Type" header can remain unchanged in each request, removed from all requests, or by modified to one of the many other options for each request. Some WAFs will only decode/evaluate requests based on known content types, this feature targets that weakness.
  3. The "Host" header can also be modified. Poorly configured WAFs might be configured to only evaluate requests based on the correct FQDN of the host found in this header, which is what this bypass targets.
  4. The request type option allows the Burp user to only use the remaining bypass techniques on the given request method of "GET" or "POST", or to apply them on all requests.
  5. The path injection feature can leave a request unmodified, inject random path info information (/path/to/example.php/randomvalue?restofquery), or inject a random path parameter (/path/to/example.php;randomparam=randomvalue?resetofquery). This can be used to bypass poorly written rules that rely on path information.
  6. The path obfuscation feature modifies the last forward slash in the path to a random value, or by default does nothing. The last slash can be modified to one of many values that in many cases results in a still valid request but can bypass poorly written WAF rules that rely on path information.
  7. The parameter obfuscation feature is language specific. PHP will discard a + at the beginning of each parameter, but a poorly written WAF rule might be written for specific parameter names, thus ignoring parameters with a + at the beginning. Similarly, ASP discards a % at the beginning of each parameter.
  8. The "Set Configuration" button activates all the settings that you have chosen.

All of these features can be combined to provide multiple bypass options.

Future

I intend to add the following features, at a minimum, to future versions:

  1. HTTP Parameter Pollution - Automatically perform HPP attacks on GET/POST parameters.
  2. HTTP Requests Smuggling - Automatically perform an HTTP request smuggling attack on each request where a dummy request is added to the beginning and the real (smuggled) request is added at the end.

I have been adding features rapidly and it is very possible that the above will be in the code by the time anyone actually reads this.

Note

I am not maintaining the Python version.

More Repositories

1

sqlipy

SQLiPy is a Python plugin for Burp Suite that integrates SQLMap using the SQLMap API.
Python
251
star
2

SideStep

Yet another AV evasion tool
C++
118
star
3

cpscam

Bypass captive portals by impersonating inactive users
Perl
75
star
4

Burp-UserAgent

Automatically modify the User-Agent header in all Burp requests
Java
51
star
5

Burp-Yara-Rules

Yara rules to be used with the Burp Yara-Scanner extension
YARA
42
star
6

Burp-AnonymousCloud

Burp extension that performs a passive scan to identify cloud buckets and then test them for publicly accessible vulnerabilities
Java
40
star
7

Burp-IndicatorsOfVulnerability

Burp extension that checks application requests and responses for indicators of vulnerability or targets for attack
Java
39
star
8

PowerSniper

Password spraying script and helper for creating password lists
PowerShell
34
star
9

gophish

GoPhish is a phishing script that enables rapid deployment of phishing sites.
Python
30
star
10

jnlpdownloader

jnlpdownloader is a Python script that takes a URL to a JNLP and downloads all the associated JARs and native libraries. Another Java based tool exists that provides this functionality, but this Python version extends the capabilities to include the ability to authenticate with BASIC, DIGEST, NTLM, or cookie authentication.
Python
13
star
11

OfficeCracker

Tool to bruteforce Word, Excel, and PowerPoint office document passwords
PowerShell
7
star
12

dirscalate

Dirscalate helps escalate a directory traversal vulnerability to root access (hopefully)
Python
6
star
13

nacpersonate

The nacpersonate script uses configuration files to impersonate an OS likely to be allowed through the device without special authentication. The tool spoofs TCP and IP options as well as the User-Agent header sent in requests to appear to be from the selected OS.
Python
4
star
14

droidboxhelper

A slight modification to the droidbox source and a helper file to convert the output into a more legible/readable form.
Python
2
star
15

CloudKeyHunter

Scan targets via SMB for cloud key files on Windows systems
PowerShell
2
star
16

p2e

Process to escalate to, or p2e, identifies processes on remote hosts running under potentially privileged accounts to be used for escalation in penetration tests
1
star