Catálogo técnico interactivo para analizar normalización Unicode aplicada a seguridad web. Enfocado en NFC, NFD, NFKC y NFKD y en cómo discrepancias entre WAF, backend, runtime y navegador generan desalineación semántica explotable. Incluye análisis práctico de equivalencia canónica vs compatibilidad, propiedades de Quick_Check, Composition_Exclusion y comportamiento en distintos puntos del pipeline (input → WAF → backend → runtime → navegador).
Proyecto en investigación activa. El contenido evoluciona conforme se validan nuevos escenarios de normalización y desalineación entre capas.
Cuando auditás aplicaciones web, muchos asumen que usar homoglyphs o caracteres “raros” es suficiente para bypass.
El problema real es otro:
• No todos los sistemas normalizan igual.
• No todos normalizan en el mismo momento.
• Algunos hacen matching antes de normalizar.
• Otros normalizan en NFKC mientras el backend compara en NFC..
Esto genera:
• Falsos positivos en pruebas ofensivas.
• Payloads que “parecen funcionar” pero se recomponen y dejan de ejecutar.
• Ventanas lógicas cuando WAF y backend interpretan distinto el mismo input.
La superficie real no está en el carácter extraño. Está en la desalineación semántica entre capas.
• Comprensión real de NFC, NFD, NFKC y NFKD en contexto ofensivo.
• Diferenciación técnica entre equivalencia canónica y equivalencia de compatibilidad.
• Análisis del impacto de NFC_Quick_Check=Maybe en validaciones.
• Estudio de Composition_Exclusion y estabilidad post Unicode 4.1.
• Evaluación de normalización en concatenación, buffering y condiciones stream-safe.
• Identificación de escenarios donde el orden de normalización altera el resultado final.
Esto permite:
• Reducir bypass teóricos sin base técnica.
• Detectar inconsistencias reales entre WAF y backend.
• Enfocar pruebas en divergencias observables, no en gimmicks visuales.
Investigación aplicada a bug bounty ético sobre cómo la normalización Unicode puede modificar la semántica efectiva del input.
No es un estudio de “caracteres raros”.
Es un análisis del pipeline completo de interpretación:
input → normalización → matching → backend → runtime → navegador
Unicode no es solo encoding.
Es equivalencia semántica formal definida en el estándar.
La explotación aparece cuando dos capas no aplican la misma equivalencia.
• https://www.unicode.org/versions/Unicode17.0.0/
Página oficial de versiones del estándar Unicode. Documenta reglas formales de normalización, estabilidad y definiciones normativas.
• https://www.unicode.org/Public/UCD/latest/ucd/
Unicode Character Database (UCD). Contiene todas las propiedades formales de los codepoints: categorías, decompositions, combining classes, Quick_Check, etc. Es la base técnica real del comportamiento de normalización.
• https://www.unicode.org/Public/UCD/latest/ucd/DerivedNormalizationProps.txt
Archivo derivado que lista propiedades específicas relacionadas con normalización, como NFC_QC, NFKC_QC y Composition_Exclusion. Fundamental para entender qué caracteres pueden cambiar bajo cada forma.
• https://util.unicode.org/UnicodeJsps/character.jsp
Herramienta oficial para inspeccionar propiedades de un codepoint individual.
Ejemplo:
https://util.unicode.org/UnicodeJsps/character.jsp?a=2126
Permite analizar propiedades como descomposición, Quick_Check y exclusiones de composición en un carácter concreto (U+2126 OHM SIGN).
Investigación ofensiva con base normativa, centrada en:
• Propiedades formales del estándar Unicode.
• Divergencias reales entre motores de normalización.
• Impacto práctico en WAF, validadores y runtimes.
• Normalización como vector lógico, no visual.
“Analiza cómo NFC, NFD, NFKC y NFKD transforman realmente el input, identifica en qué punto del pipeline se normaliza y detecta desalineaciones entre WAF, backend y runtime antes de que se conviertan en superficie explotable.”

Normalizacion Unicode y Desalineacion entre Capas.