Ofuscación por inversión de cadenas:
el truco más simple para colarse por debajo de un filtro
Ofuscación y evasión | unfantasmaenelsistema.com
moc.olmepje@oiraisu no parece un correo electrónico a simple vista — y ese es exactamente el punto. Invertir el orden de los caracteres de un texto es, probablemente, la técnica de ofuscación más simple que existe: no cifra nada, no codifica nada, solo escribe la cadena al revés. Pero un filtro que busca el patrón exacto «@ejemplo.com» no lo encuentra en esa cadena invertida, mientras que cualquiera —humano o máquina— que sepa que hay que leerla al revés la reconoce sin esfuerzo. Esa asimetría es lo que la hace útil tanto para protegerse de scraping como para evadir un filtro de seguridad.
Qué aprenderás en este artículo
El mecanismo básico de la inversión de cadenas, y por qué burla filtros de coincidencia exacta · Variantes relacionadas: homoglifos, caracteres invisibles y codificaciones combinadas · Casos reales de uso, tanto defensivos (protección de correos) como ofensivos (bypass de WAF) · Cómo detectar y neutralizar esta técnica con normalización antes del filtrado
1. El mecanismo, en tres líneas de código
# Python email = "usuario@ejemplo.com" obfuscado = email[::-1] # moc.olmepje@oiraisu
// JavaScript
function reverseString(str) { return str.split('').reverse().join(''); }
const obfuscado = reverseString('usuario@ejemplo.com');Un filtro de contenido que compara la entrada contra un patrón conocido —una blacklist de dominios, una firma de palabra prohibida— busca ese patrón tal cual. Si el texto llegó invertido, la comparación falla aunque el contenido real, leído en el sentido correcto, sea exactamente lo que el filtro pretendía bloquear.
2. Variantes que van más allá de invertir el texto entero
| Técnica | Cómo funciona | Ejemplo |
|---|---|---|
| Homoglifos | Sustituir letras por otras visualmente idénticas de otro alfabeto | pаypal.com (con ‘а’ cirílica, U+0430) se ve igual que paypal.com |
| Caracteres invisibles | Insertar caracteres de ancho cero o de control que rompen el patrón sin alterar la vista | pa\u200bss usa Zero-Width Space entre ‘pa’ y ‘ss’ |
| Inversión parcial | Invertir solo la parte sensible (el dominio, por ejemplo) y dejar el resto legible | Mantiene el texto reconocible salvo el fragmento que el filtro busca |
| Codificación combinada | Encadenar URL encoding, Base64 e inversión en distintas capas | Cada capa adicional exige un paso más de normalización para detectarlo |
3. Dónde aparece de verdad
- Protección legítima de correos en HTML: mostrar un email invertido y revertirlo con JavaScript en el navegador del visitante humano, para que los scrapers automatizados que no ejecutan JS no lo capturen
- Retos CTF y de formación: OWASP Juice Shop usa correos invertidos como mecanismo de ofuscación educativa en varios de sus retos
- Bypass de filtros anti-phishing: un dominio de phishing invertido en el cuerpo de un correo puede evadir una blacklist que compara contra el patrón directo
- Evasión de WAF: un payload de XSS invertido —>tpircs/<)1(trela>tpircs<— puede colarse por un filtro que solo busca la cadena en su orden habitual, si la aplicación de destino lo revierte antes de procesarlo
4. Cómo se detecta y se neutraliza
# Comprobacion bidireccional simple: buscar el patron tambien en el texto invertido
def detecta_invertido(texto, patron_conocido):
return patron_conocido in texto[::-1]- Normalizar antes de filtrar, no después: aplicar la inversión a la entrada como parte del propio pipeline de validación, no como una comprobación aparte que alguien puede olvidar
- Decodificar todas las capas conocidas (URL, Base64, HTML entities) antes de comparar contra cualquier lista negra
- Normalización Unicode (NFKC) para reducir homoglifos a su forma canónica antes de cualquier comparación
- Detectar caracteres de control e invisibles (Zero-Width Space, Right-to-Left Override) como señal de alerta en sí misma, independientemente del contenido que acompañen
Conclusión
La inversión de cadenas no es sofisticada, y es precisamente esa simplicidad la que la hace efectiva contra cualquier filtro que compare texto de forma literal sin normalizarlo antes: no hace falta ninguna vulnerabilidad de software, basta con que el filtro confíe en que el texto le llega en el orden que espera.
La misma idea, con variantes más elaboradas (homoglifos, caracteres invisibles), sigue apareciendo en 2026 en intentos de jailbreak contra sistemas de IA — el patrón de fondo, burlar una coincidencia literal sin cambiar el significado real del texto, no ha cambiado en absoluto.
Practica esto en el laboratorio guiado de GhostAcademy
GhostAcademy dedica una guía interactiva a la ofuscación por inversión de cadenas, con generadores y detectores en vivo para experimentar con cada variante.
Abrir la guía de ofuscación por inversión →Referencias
La guía interactiva de ofuscación por inversión de cadenas de GhostAcademy, con generadores y detectores en vivo · OWASP Juice Shop, la aplicación deliberadamente vulnerable que usa esta técnica en varios de sus retos
unfantasmaenelsistema.com | Seguridad, sistemas y todo lo que no debería funcionar (pero funciona)

