unicode-normalization-bypass

Detects Unicode normalization bypasses in web application firewalls and input filters for penetration testing.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Web application firewalls (WAFs) and input filters often block standard attack payloads, but if the backend normalizes Unicode input before processing, these filters can be bypassed, leaving vulnerabilities like XSS, SSTI, and SQLi exposed. This Skill solves that problem by providing proven techniques to test for and exploit these normalization gaps.

Core Features & Use Cases

  • Unicode Character Substitution: Replace blocked special characters (like <, >, ', /) with fullwidth, mathematical, or script variant Unicode equivalents that pass WAF checks but normalize to the original character on the backend.
  • Surrogate Wildcard Injection: Exploit invalid Unicode surrogate characters that get converted to replacement characters, then simplified to wildcards in Solr/Elasticsearch backends to leak data via broadened search results.
  • Multi-Layer Encoding Bypass: Stack URL encoding with Unicode normalization to bypass WAFs that only decode one layer of input before filtering.
  • Use Case: A security tester can use this Skill to assess if a web application's input filtering is vulnerable to Unicode bypass, identifying gaps that could be exploited by attackers.

Quick Start

Use the unicode-normalization-bypass skill to test if the target web application's backend normalizes Unicode input by submitting fullwidth character payloads to its text input fields and checking if the processed output matches the expected ASCII equivalent.

Frequently Asked Questions about unicode-normalization-bypass

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

FAQPage Schema
How do I bypass WAFs using Unicode normalization?

You can bypass WAFs using Unicode normalization by replacing blocked ASCII characters with fullwidth or mathematical Unicode equivalents that pass filters but normalize back to the original characters on the backend.

What is surrogate wildcard injection in Solr and Elasticsearch?

Surrogate wildcard injection in Solr and Elasticsearch exploits invalid Unicode surrogate characters that convert to replacement characters and then simplify into wildcards, broadening search results to leak data.

How does multi-layer URL encoding combined with Unicode bypass input filters?

Multi-layer URL encoding combined with Unicode bypasses input filters by stacking encodings to exploit WAFs that only decode a single layer before filtering, allowing normalized payloads to reach the backend.

Can I use Unicode character substitution to test for XSS and SQLi vulnerabilities?

Yes, you can use Unicode character substitution to test for XSS, SSTI, and SQLi vulnerabilities by submitting fullwidth character payloads to input fields and checking if backend normalization processes them into active exploits.

When should I use NFKC normalization techniques for security testing?

You should use NFKC normalization techniques for security testing when assessing whether web application backends normalize Unicode input after filter processing, exposing gaps that attackers could exploit.

Does Unicode bypass work against all web application firewalls?

Unicode bypass does not work against all web application firewalls; it specifically targets backends that perform Unicode normalization after filter processing, meaning WAFs without this normalization gap remain unaffected.