hackweb
appunti di hacking e tecnologia
IT EN
menù principale
menù utente
non sei loggato

Command injection: dall'input alla shell

9 gennaio 2026 · 1 min di lettura · #web #command-injection #rce

Quando l'app costruisce un comando shell con input non validato, i metacaratteri della shell diventano codice:

system("ping -c 1 " . $_GET['host']);
// host = 8.8.8.8; cat /etc/passwd

;, |, &&, $(...), backtick: tutti separano o iniettano comandi. Anche in blind, ; sleep 5 o l'esfiltrazione via DNS/HTTP confermano l'esecuzione.

Difesa

Evita la shell: usa API che accettano argomenti come array (execve-style, subprocess.run([...], shell=False)), così l'input è un argomento, non codice. Se proprio serve la shell, valida con whitelist rigide. L'escaping (escapeshellarg) è l'ultima risorsa, facile da sbagliare.


« torna alla home

ultimi post
 
il tuo indirizzo IP:
216.73.216.108
visitatore #1
MOTD:
Ogni astrazione perde da qualche parte.
Qui guardiamo dove.
argomenti