# Awesome WAF ![Awesome](https://camo.githubusercontent.com/13c4e50d88df7178ae1882a203ed57b641674f94/68747470733a2f2f63646e2e7261776769742e636f6d2f73696e647265736f726875732f617765736f6d652f643733303566333864323966656437386661383536353265336136336531353464643865383832392f6d656469612f62616467652e737667 "Awesome") > A curated list of awesome WAF stuff. > > __Foreword:__ This was originally my own collection on WAFs. I am making it public in the hope that it will be useful for pentesters and researchers out there. "The community just learns from each other." __#SharingisCaring__ ![Main Logo](images/how-wafs-work.png 'How wafs work') __A Concise Definition:__ A web application firewall is a form of firewall with a set of configured rules that controls input, output, and/or access from, to, or by an application or service. It operates by monitoring and potentially blocking the input, output, or system service calls that do not meet the configured policy of the firewall. *(Source [Wikipedia](https://en.wikipedia.org/wiki/Application_firewall))* Feel free to [contribute](CONTRIBUTING.md). ### Contents: - [Awesome WAFs List](#awesome-waf-list) - [Awesome Testing Methodology](#testing-methodology) - [Awesome WAF Detection](#waf-detection) - [Awesome Evasion Techniques](#evasion-techniques) - [Awesome Tools](#awesome-tools) - [Awesome Blogs & Writeups](#blogs-and-writeups) - [Awesome Presentations & Papers](#presentations--research-papers) ## How WAFs Work: - Using a set of rules to distinguish between normal requests and malicious requests. - Sometimes they use a learning mode to add rules automatically through learning about user behaviour. ## Operation Modes: - __Negative Model (Blacklist based)__ - A blacklisting model uses pre-set signatures to block web traffic that is clearly malicious, and signatures designed to prevent attacks which exploit certain website and web application vulnerabilities. For example, if a number of IP addresses send a lot more packets than is typical for that many IP addresses being used to surf a website, a blacklisting firewall can effectively prevent DDoS attacks. Blacklisting model web application firewalls are a great choice for websites and web applications on the public internet, because those targets can get a lot of legitimate web traffic from unfamiliar client machines. Eg. Block all `` inputs. - __Positive Model (Whitelist based)__ - A whitelisting model only allows web traffic according to specifically configured criteria. For example, it can be configured to only allow HTTP GET requests from certain IP addresses. This model can be very effective for casting a wide metaphorical fishing net for blocking possible cyber-attacks, but just as fishing nets also catch a lot of matter that a fisherman can't sell, whitelisting will block a lot of legitimate traffic. Whitelisting model firewalls are probably best for web applications on an internal network that are designed to be used by only a limited group of people, such as employees. - __Mixed/Hybrid Model (Inclusive model)__ - A hybrid security model is one that blends both whitelisting and blacklisting. Depending on all sorts of configuration specifics, hybrid firewalls could be the best choice for both web applications on internal networks and web applications on the public internet. ## Testing Methodology: ### Where To Look: - Always look out for common ports that expose that a WAF `80`, `443`, `8000`, `8008`, `8080`, `8088`. > __Tip:__ You can use automate this easily by commandline using a screenshot taker like [WebScreenShot](https://github.com/maaaaz/webscreenshot). - Some WAFs set their own cookies in requests (eg. Citrix Netscaler, Yunsuo WAF). - Some associate themselves with separate headers (eg. Anquanbao WAF, Amazon AWS WAF). - Some often alter headers and jumble characters to confuse attacker (eg. Citrix Netscaler, F5 Big IP). - Some (often rare) expose themselves in the `Server` header (eg. Approach, WTS WAF). - Some WAFs expose themselves in the response content (eg. DotDefender, Armor, Sitelock). - Other WAFs reply with unusual response codes upon malicious requests (eg. WebKnight, 360 WAF). ### Detection Techniques: 1. Make a normal GET request from a browser, intercept and test response headers (specifically cookies). 2. Make a request from command line (eg. cURL), and test response content and headers (no user-agent included). 3. If there is a login page somewhere, try some common (easily detectable) payloads like `' or 1 = 1 --`. 4. If there is some search box or input field somewhere, try detecting payloads like ``. 5. Make GET requests with outdated protocols like `HTTP/0.9` (`HTTP/0.9` does not support POST type queries). 6. Many a times, the WAF varies the `Server` header upon different types of interactions. 7. Drop Action Technique - Send a raw crafted FIN/RST packet to server and identify response. > __Tip:__ This method could be easily achieved with tools like [HPing3](http://www.hping.org) or [Scapy](https://scapy.net). 8. Side Channel Attacks - Examine the timing behaviour of the request and response content. ## WAF Detection Wanna detect WAFs? Lets see how. > __NOTE__: This section contains manual WAF detection techniques. You might want to switch over to [next section](#awesome-tools).
360 Firewall |
|
aeSecure |
|
Airlock (Phion/Ergon) |
|
Anquanbao WAF |
|
Armor Defense |
|
Application Security Manager (F5 Networks) |
|
Approach Firewall |
|
Amazon AWS WAF |
|
Yunjiasu WAF (Baidu) |
|
Barracuda WAF |
|
Bekchy (Faydata) |
|
BitNinja Firewall |
|
Bluedon IST |
|
BIG-IP ASM (F5 Networks) |
|
BinarySec WAF |
|
BlockDos |
|
ChinaCache Firewall |
|
ACE XML Gateway (Cisco) |
|
Cloudbric |
|
Cloudflare |
|
Cloudfront (Amazon) |
|
Comodo Firewall |
|
CrawlProtect (Jean-Denis Brun) |
|
GoDaddy Firewall |
|
IBM WebSphere DataPower |
|
Deny-All Firewall |
|
Distil Firewall |
|
DoSArrest Internet Security |
|
dotDefender |
|
EdgeCast (Verizon) |
|
Expression Engine (EllisLab) |
|
FortiWeb Firewall |
|
GreyWizard Firewall |
|
HyperGuard Firewall |
|
Imperva SecureSphere |
|
Immunify360 (CloudLinux Inc.) |
|
ISAServer |
|
Janusec Application Gateway |
|
Jiasule Firewall |
|
KnownSec Firewall |
|
KONA Site Defender (Akamai) |
|
Malcare (Inactiv) |
|
ModSecurity (Trustwave) |
|
NAXSI (NBS Systems) |
|
Netcontinuum (Barracuda) |
|
NinjaFirewall (NinTechNet) |
|
NetScaler (Citrix) |
|
NewDefend Firewall |
|
NSFocus Firewall |
|
onMessage Shield (Blackbaud) |
|
Palo Alto Firewall |
|
PerimeterX Firewall |
|
Profense Firewall |
|
Radware Appwall |
|
Reblaze Firewall |
|
Request Validation Mode (ASP.NET) |
|
RSFirewall (RSJoomla) |
|
Safe3 Firewall |
|
SafeDog Firewall |
|
SecureIIS (BeyondTrust) |
|
SEnginx (Neusoft) |
|
ShieldSecurity |
|
SiteGround Firewall |
|
SiteGuard (JP Secure) |
|
SiteLock TrueShield |
|
SonicWall (Dell) |
|
Sophos UTM Firewall |
|
SquareSpace Firewall |
|
StackPath (StackPath LLC) |
|
Stingray (RiverBed/Brocade) |
|
Sucuri CloudProxy |
|
Tencent Cloud WAF |
|
TrafficShield (F5 Networks) |
|
URLMaster SecurityCheck (iFinity/DotNetNuke) |
|
URLScan (Microsoft) |
|
USP Secure Entry |
|
Varnish (OWASP) |
|
VirusDie Firewall |
|
WallArm (Nginx) |
|
WatchGuard Firewall |
|
WebKnight (Aqtronix) |
|
WP Cerber Firewall |
|
Yundun Firewall |
|
Yunsuo Firewall |
|
ZenEdge Firewall |
|