Iniezione di comando
Un punto e virgola in un campo modulo e il server esegue il comando.
Cos’è Iniezione di comando?
L'iniezione di comandi trasforma una richiesta web in esecuzione di codice con l'identità del server. L'applicazione incolla l'input dell'utente in una stringa di comando e lo trasmette a una shell, che legge ogni carattere speciale come sintassi. Aggiungerai un punto e virgola al campo host di uno strumento di diagnostica di rete, eseguirai un secondo comando e rileggerai il file di ambiente con la password del database al suo interno. Quindi sostituisci la stringa concatenata con execFile in modo che l'host rimanga un unico argomento e scopri perché il filtraggio dei caratteri pericolosi perde sempre.
Cosa imparerai in Iniezione di comando
- Identificare il modello di shell-out: qualsiasi input dell'utente incollato in una stringa di comando passata a una shell (exec, system, sh -c) è un candidato per l'iniezione di comandi
- Riconoscere come un separatore della shell come un punto e virgola trasforma un comando in due quando l'input non viene tenuto fuori dalla shell
- Applicare la correzione dell'elenco di argomenti: execFile o spawn con un array di argomenti in modo che il programma venga eseguito direttamente e i caratteri della shell nell'input rimangano letterali
- Comprendi perché filtrare caratteri come ; e | fallisce (altri separatori, codifiche e sostituzioni lo ignorano)
- Riduci il raggio dell'esplosione con il minimo privilegio e mantenendo i segreti lontani dai file che un lavoratore può leggere
Iniezione di comando — Fasi della formazione
-
Lo strumento diagnostico
Trelvane gestisce una piattaforma di hosting e offre uno specchio pubblico: incolla un host e i server periferici di Trelvane lo eseguono per te e restituiscono l'output non elaborato. Utile per i clienti che controllano se un server è raggiungibile. Bob lo apre per vedere come si comporta prima di toccarlo.
-
Esegue un vero e proprio comando
Una riga in quella pagina è l'intera ragione per cui Bob è interessato.
-
Utilizza la funzione
Guarda lo strumento comportarsi normalmente. Effettua il ping di un normale host in modo che il browser catturi la richiesta inviata dalla pagina.
-
Trova la richiesta
La richiesta è stata inviata e il browser l'ha registrata. Apri il pannello Rete e leggi dove la pagina lo ha inviato e come viaggia l'host.
-
Iniettare un secondo comando
Bob non tocca mai più il modulo. Modifica la richiesta catturata nel pannello Rete e riscrive il valore host : un indirizzo di loopback, un punto e virgola, quindi due comandi propri. Se il server crea il comando ping incollando il valore, il punto e virgola termina il ping e i comandi di Bob vengono eseguiti subito dopo. Concatena id per vedere con chi viene eseguito il server e un cat del file dell'ambiente del lavoratore, dove gli agenti di hosting conservano la password del database e le chiavi cloud.
-
Le chiavi sono sparite
Il ping viene eseguito e quindi vengono visualizzate le linee che il ping non produce mai.
-
Verifica della conoscenza
Hai appena visto uno strumento ping eseguire i comandi dell'aggressore e divulgare i segreti del server. Blocca il perché.
-
L'avviso
Possiedi il servizio Looking Glass di Trelvane. Durante la notte, il monitoraggio ha segnalato all'addetto alla diagnostica qualcosa che uno strumento ping non dovrebbe mai fare: eseguire comandi della shell e leggere il proprio file dei segreti. Security Operations ti ha inviato i dettagli via email.
-
Apri il gestore
L'endpoint del ping è servito da ping.js . Aprilo e guarda come esegue il comando.
-
Individua il difetto
Il gestore incolla il valore dell'host in una stringa di comando e passa l'intera stringa a una shell per l'esecuzione.
Copertura dei framework di sicurezza
OWASP Top 10
- A05:2025 Injection
- A03:2021 Injection
CWE
- CWE-78 Improper Neutralization of Special Elements used in an OS Command
CIS Controls
- CIS 16 Application Software Security
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security