diff --git a/README.md b/README.md index 2c94edf..3ff69d6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ # Awesome WAF [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg "Awesome")](https://github.com/0xinfection/awesome-waf) -> A curated list of awesome WAF stuff. 🔥 +> Everything awesome about web application firewalls (WAFs). 🔥 > > __Foreword:__ This was originally my own collection on WAFs. I am open-sourcing it in the hope that it will be useful for pentesters and researchers out there. You might want to keep this repo on a watch, since it will be updated regularly. "The community just learns from each other." __#SharingisCaring__ @@ -2299,7 +2299,6 @@ __Blocked__: `uNIoN(sEleCT 1,2,3,4,5,6,7,8,9,10,11,12)` __Bypassed__: `uNIoN%28sEleCT+1%2C2%2C3%2C4%2C5%2C6%2C7%2C8%2C9%2C10%2C11%2C12%29` __3. Unicode Encoding__ -- Most modern web-apps support UTF-8 and hence are prone to this method. - ASCII characters in unicode encoding encoding provide great variants for bypassing. - You can encode entire/part of the payload for obtaining results. @@ -2313,7 +2312,7 @@ __Standard__: `../../etc/passwd` __Obfuscated__: `%C0AE%C0AE%C0AF%C0AE%C0AE%C0AFetc%C0AFpasswd` __4. HTML Encoding__ -- Often web apps encode special characters into HTML encoding and render accordingly. +- Often web apps encode special characters into HTML encoding and render them accordingly. - This leads us to basic bypass cases with HTML encoding (numeric/generic). __Standard__: `">` @@ -2321,7 +2320,7 @@ __Encoded__: `"><img src=x onerror=confirm()>` (General __Encoded__: `"><img src=x onerror=confirm()>` (Numeric reference) __5. Mixed Encoding__ -- WAF rules often tend to filter out a single type of encoding. +- Sometimes, WAF rules often tend to filter out a specific type of encoding. - This type of filters can be bypassed by mixed encoding payloads. - Tabs and newlines further add to obfuscation. @@ -2388,6 +2387,7 @@ __Obfuscated__: `` __Standard__: `
` __Obfuscated__: `````` +> __NOTE:__ The above payload can break the regex parser to cause an exception. __Standard__: `ClickMe ` __Bypassed__: `ClickMe` @@ -2437,36 +2437,7 @@ __Obfuscated__: ``` -__13. Unsupported SSL/TLS Ciphers__ -- Many a times, servers do accept connections from various SSL/TLS ciphers and versions. -- Using a cipher to initialise a connection to server which is not supported by the WAF can do our workload. - -#### Technique: -- Dig out the ciphers supported by the firewall (usually the WAF vendor documentation discusses this). -- Find out the ciphers supported by the server (tools like [SSLScan](https://github.com/rbsec/sslscan) helps). -- If a specific cipher not supported by WAF but by the server, is found, voila! -- Initiating a new connection to the server with that specific cipher should smuggle our payload in. - -> __Tool__: [abuse-ssl-bypass-waf](https://github.com/LandGrey/abuse-ssl-bypass-waf) -``` -python abuse-ssl-bypass-waf.py -thread 4 -target