[Herramientas](https://hackindex.io/es/tools)
## Generador de Bypass de Inyección de Comandos

Introduce un comando y un filtro regex. Generaremos payloads que lo evaden.

## Cómo funciona

Esta herramienta automatiza la búsqueda de payloads de inyección de comandos que superan un filtro regex dado. Genera docenas de variantes ofuscadas de tu comando y prueba cada una contra el regex — en el servidor en PHP, nunca se ejecuta nada.

1. 1. Introduce tu comando: el comando en bruto a inyectar, p. ej. `whoami` o `cat /etc/passwd`.
2. 2. Pega el filtro regex: cualquier formato: PHP `/pattern/flags`, Python `r"pattern"` o `re.compile(...)`, JavaScript `new RegExp(...)`, backtick de Go, o un patrón simple.
3. 3. Elige el tipo de filtro: los filtros blacklist bloquean la entrada coincidente (el payload NO debe coincidir); los filtros whitelist solo permiten la entrada coincidente (el payload debe coincidir).
4. 4. Obtén tus bypasses: se devuelve cada payload que supera la condición del filtro, agrupado por técnica, con el SO al que aplica.

## Categorías de técnicas de bypass

El generador cubre las siguientes familias de técnicas de bypass para Linux/Bash y Windows CMD/PowerShell.

Linux Encoding (base64 / hex / xxd / octal)

Encodes the entire command using base64 (subshell and pipe-to-sh), raw hex decoded by xxd -r -p, printf \x escapes (lowercase), and ANSI-C $'\x..' quoting. Lowercase-only variants bypass [A-Z] filters.

Linux Quote splitting

Inserts empty single quotes, double quotes, or backslash escapes inside the keyword, e.g. c''at or c\at, breaking pattern matching without changing shell semantics.

Linux Space bypass

Replaces literal spaces with $IFS, ${IFS}, a tab character ($'\t'), brace expansion ({cmd,arg}), or input redirection (cat</etc/passwd).

Linux Slash bypass

Replaces forward slashes using ${HOME:0:1}, ANSI-C $'\x2f', $'\57', or $(printf '\57').

Linux Variable concat

Splits the command across two shell variables (a=wh; b=oami; $a$b) to avoid matching the full keyword in the regex.

Linux Alternative commands

Substitutes blocked commands: cat → less, tac, nl, head, xxd; whoami → id; ls → echo *.

Linux Wildcards / globbing (hint)

Generates c?t and c* variants. These bypass the regex but require the correct binary on the filesystem. Verify manually.

Windows CMD caret obfuscation

Inserts the ^ escape character between chars (w^h^o^a^m^i). CMD ignores ^ and executes the command normally.

Windows CMD quote splitting

Inserts empty double quotes (wh""oami). Functionally identical to the unquoted form in CMD.

Windows CMD variable tricks

Splits across environment variables (set a=wh& set b=oami& call %a%%b%). Also supports delayed expansion via cmd /V:ON and !var!.

Windows PowerShell backtick

The backtick (`) is a PowerShell escape character silently ignored in identifiers. wh`oami executes as whoami.

Windows PowerShell encoding

Encodes as UTF-16LE base64 for powershell -enc, or rebuilds from a char array ([char[]](119,104,...) -join '') or string concat ('wh'+'oami').

Windows PowerShell invoke variants

Uses iex, the & operator, ScriptBlock::Create, or mixed-case IeX without spelling Invoke-Expression.

## Filtros blacklist vs. whitelist

Blacklist — el payload NO debe coincidir

La aplicación bloquea la entrada cuando el regex coincide. El regex describe el patrón peligroso — p. ej. `[;&|`$]` o `cat|ls|whoami`. Un payload no debe activar el regex para pasar.

Común en: PHP preg_match() con die/block al coincidir, guardas Python re.search().

Whitelist — el payload debe coincidir

La aplicación solo procesa la entrada cuando el regex coincide. El regex describe los caracteres permitidos — p. ej. `^[^;\/&A-Z]*$`. Un payload debe satisfacer el regex mientras ejecuta un comando.

Común en: validadores de entrada, código fuente CTF, allowlists WAF.

Consejo: si el regex está anclado con `^` y `$`, casi siempre es una whitelist. La herramienta te avisará si tu selección de modo parece incorrecta.

## Formatos de entrada regex admitidos

Pega el regex exactamente como aparece en el código fuente — la herramienta detecta automáticamente el formato, extrae el patrón y los flags, y lo compila en una expresión compatible con PHP.

| Idioma / formato | Ejemplo |
| --- | --- |
| PHP / JS / Ruby / Perl | /[;&\|`$\s]/i |
| Patrón simple | ^[0-9a-z]+$ |
| Cadena raw de Python | r"^[^;/\&.<>\rA-Z]*$" |
| Python re.compile | re.compile(r"[;&\|]", re.IGNORECASE) |
| JavaScript new RegExp | new RegExp("[;&\|]", "gi") |
| Cadena raw de Go | `^[a-z0-9]+$` |
| Perl m// | m/[;&\|]/gi |
| Cadena entre comillas | "^[a-z0-9]+$" |

## Preguntas frecuentes

¿Esto ejecuta comandos realmente?

No. Todo se ejecuta en el servidor con PHP. Los payloads se generan como cadenas y se prueban contra tu regex con preg_match(). Nunca se ejecuta ningún comando en el servidor.

¿Qué significa "el payload debe coincidir / NO debe coincidir"?

Una blacklist bloquea la entrada cuando la regex coincide: el payload NO debe coincidir. Una whitelist solo permite la entrada cuando la regex coincide: el payload debe coincidir. La herramienta detecta automáticamente cuál es más probable y te avisa si tu selección parece incorrecta.

¿Por qué algunos payloads están marcados con una advertencia?

Los payloads basados en comodines y glob (p. ej. /bin/c?t) dependen de la estructura del sistema de archivos del objetivo. Eluden el filtro regex, pero solo funcionarán si el binario esperado está presente en esa ruta.

¿Por qué mi payload con comillas ANSI-C no se ejecuta directamente?

Una cadena ANSI-C como $'\x77\x68\x6f\x61\x6d\x69' se evalúa en bash como la cadena literal whoami, pero no se ejecuta por sí sola. Prefíjala con eval o bash -c, que son letras minúsculas y es poco probable que se filtren.

¿Puedo usar esto para retos CTF?

Sí. Esta herramienta está pensada para CTF y escenarios de pentesting autorizado donde necesitas eludir un filtro de entrada para lograr la ejecución de comandos. Úsala solo en sistemas que poseas o para los que tengas permiso explícito de prueba.
