OWASP WAF-A-MoLE

Project Overview

WAF-A-MoLE is a guided mutation-based fuzzer for Web Application Firewalls.

Given an input attack payload, it tries to produce a semantic invariant query that bypasses detection rules for the target WAF. You can use this tool for assessing the robustness of your product by letting WAF-A-MoLE explore the solution space to find dangerous “blind spots” left uncovered by the target classifier.

WAF-A-MoLE Architecture

WAF-A-MoLE takes an initial payload and inserts it in the payload Pool, which manages a priority queue ordered by the WAF confidence score over each payload.

During each iteration, the head of the payload Pool is passed to the Fuzzer, where it gets randomly mutated, by applying one of the available mutation operators. Mutation operators Mutations operators are all semantics-preserving and they leverage the expressive power of the target grammar.

Below are the SQL mutation operators available in the current version of WAF-A-MoLE.

Mutation Example
Case Swapping admin’ OR 1=1# ⇒ admin’ oR 1=1#
Whitespace Substitution admin’ OR 1=1# ⇒ admin’\t\rOR\n1=1#
Comment Injection admin’ OR 1=1# ⇒ admin’/**/OR 1=1#
Comment Rewriting admin’/*/OR 1=1# ⇒ admin’/xyz*/OR 1=1#abc
Integer Encoding admin’ OR 1=1# ⇒ admin’ OR 0x1=(SELECT 1)#
Operator Swapping admin’ OR 1=1# ⇒ admin’ OR 1 LIKE 1#
Logical Invariant admin’ OR 1=1# ⇒ admin’ OR 1=1 AND 0<1#
Number Shuffling admin’ OR 1=1# ⇒ admin’ OR 2=2#

How to Contribute Questions, bug reports and pull requests are always welcome. In particular, if you are interested in expanding this project, we are currently interested in the following contributions:

  • New WAF adapters
  • New mutation operators (both for SQL and other vulnerability classes, XSS in particular)
  • New search algorithms

Project Road Map

🎯August 2024 - WAF-A-MoLE becomes a OWASP project!

This version supports SQL mutations and contains drivers for ModSecurity and a selection of ML-based WAFs The ModSecurity driver leverages on a custom fork for the pymodsecurity module.

🎯March 2024 - September 2024

Testing + Feedback + Improvements These tests will include assessing how effective the current strategy is at bypassing ModSecurity (with a focus on the CoreRuleSet), also by gathering real experiences from users. Compare and add optimization algorithms to the WAF-A-MoLE strategy selection.

🎯September 2024: Integrate WAF-A-MoLE in the FTW framework

FTW currently uses static payloads, we want to add dynamic payload generation.

🎯March 2025: XSS support

WAF-A-MoLE includes mutation operators and strategies for Cross-Site Scripting payloads


Example

Put whatever you like here: news, screenshots, features, supporters, or remove this file and don’t use tabs at all.