h2-waf-bypass

Bypass WAF payload inspection using HTTP/2 binary framing attacks.

11|1|Updated May 4, 2026
One-click install
npx skills add https://github.com/dreadnode/capabilities --skill h2-waf-bypass
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: h2-waf-bypass
Source: https://github.com/dreadnode/capabilities/tree/main/capabilities/web-security/skills/h2-waf-bypass
Command: npx skills add https://github.com/dreadnode/capabilities --skill h2-waf-bypass

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) components.

What problem does it solve?

Standard web application firewalls (WAFs) often block malicious payloads sent over HTTP/1.1, but HTTP/2's binary framing architecture creates blind spots for out-of-process WAFs that evaluate requests before the full request body is received. This Skill enables bypassing these WAF restrictions when standard 403 bypass and parser differential techniques fail, and the target supports HTTP/2.

Core Features & Use Cases

  • Automated Proxy + WAF Fingerprinting: Identifies the reverse proxy and WAF architecture in use to select only applicable bypass attacks, avoiding wasted effort on hardened configurations like nginx with libmodsecurity3.
  • 6 Distinct HTTP/2 Framing Bypasses: Includes body timing attacks, body size truncation, Extended CONNECT method conversion, path normalization bypasses, JSON content-type gap exploitation, and ForwardAuth body stripping for common proxy/WAF combinations.
  • Use Case: Use this Skill during authorized penetration testing when a WAF blocks all HTTP/1.1 payloads but the target supports HTTP/2, and you have exhausted standard path, header, and content-type bypass techniques.

Quick Start

Use the h2-waf-bypass skill to run the full WAF bypass test pipeline against your target host and port to identify exploitable HTTP/2 framing vulnerabilities.

Frequently Asked Questions about h2-waf-bypass

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I bypass a WAF when standard HTTP/1.1 payload techniques and 403 bypasses fail?

WAF bypass can be achieved by exploiting HTTP/2 binary framing blind spots in out-of-process WAF architectures, which evaluates payloads differently than the backend server. This technique applies when the target supports HTTP/2 and standard parser differential methods have been exhausted.

Does HTTP/2 framing allow WAF evasion against hardened configurations like nginx with libmodsecurity3?

HTTP/2 framing WAF evasion is generally ineffective against hardened configurations like nginx with libmodsecurity3. Automated fingerprinting identifies the reverse proxy and WAF architecture beforehand to avoid wasting effort on these hardened setups.

What HTTP/2 bypass techniques can I use for authorized penetration testing?

For authorized penetration testing, you can use six distinct HTTP/2 framing bypasses including body timing attacks, body size truncation, Extended CONNECT method conversion, path normalization bypasses, JSON content-type gap exploitation, and ForwardAuth body stripping.

How does proxy fingerprinting help with WAF evasion?

Proxy fingerprinting identifies the specific reverse proxy and WAF architecture in use, allowing selective execution of context-aware HTTP/2 framing attack vectors. This prevents wasted effort on configurations that are not vulnerable to specific bypass techniques.

Why do out-of-process WAFs miss malicious payloads sent over HTTP/2?

Out-of-process WAFs miss HTTP/2 payloads because their binary framing architecture creates blind spots when evaluating requests before the full body is received. This parser differential allows malicious content to pass inspection while being interpreted differently by the backend.

Do I need external Python libraries to run HTTP/2 WAF bypass tests?

No external Python libraries are required to run HTTP/2 WAF bypass tests. The automated fingerprinting, selective attack vector execution, and evidence capture for confirmed bypasses operate using only Python standard library dependencies.