introduzione
Abbiamo trattato la vulnerabilità dell'iniezione di comandi e il modo in cui la sanificazione e la convalida degli input sono fondamentali per prevenire lo sfruttamento di questa vulnerabilità.
Per cominciare, capiamo prima cos'è l'iniezione di comando. L'iniezione di comandi è l'abuso del comportamento di un'applicazione per eseguire comandi sul sistema operativo, utilizzando gli stessi privilegi con cui è in esecuzione l'applicazione su un dispositivo. Ad esempio, ottenendo l'iniezione di comandi su un server Web in esecuzione come utente denominato Joe
eseguirà i comandi sotto questo Joe
utente – e quindi ottenere tutte le autorizzazioni che Joe
ha.
Ottieni le note sul certificato OSCP
Una vulnerabilità di command injection è anche nota come “Remote Code Execution” (RCE) perché un utente malintenzionato può indurre l'applicazione a eseguire una serie di payload forniti, senza accesso diretto alla macchina stessa (ovvero una shell interattiva). Il server web elaborerà questo codice e lo eseguirà con i privilegi e i controlli di accesso dell'utente che sta eseguendo l'applicazione.
L'iniezione di comandi è spesso nota anche come "Remote Code Execution" (RCE) a causa della capacità di eseguire in remoto il codice all'interno di un'applicazione. Queste vulnerabilità sono spesso le più redditizie per un utente malintenzionato perché significa che l'utente malintenzionato può interagire direttamente con il sistema vulnerabile. Ad esempio, un utente malintenzionato può leggere file di sistema o dell'utente, dati e cose di questo tipo.
Ad esempio, poter abusare di un'applicazione per eseguire il comando chi sono
per elencare quale account utente è in esecuzione l'applicazione sarà un esempio di command injection.
L'iniezione di comandi è stata una delle dieci principali vulnerabilità segnalate dal rapporto di intelligence AppSec di Contrast Security nel 2019. (Contrasto Sicurezza AppSec., 2019). Inoltre, il framework OWASP propone costantemente vulnerabilità di questo tipo come una delle dieci principali vulnerabilità di un'applicazione web (Quadro OWASP).
Domande e risposte della sfida
Che cosa HTTP viene utilizzato il metodo per recuperare i dati inviati da un utente nello snippet di codice PHP?
Se volessi eseguire il id
comando nello snippet di codice Python, quale percorso dovrei visitare?
Quale strumento di rete popolare utilizzerei per testare l'inserimento di comandi ciechi su a Linux macchina?
Quale carico utile utilizzerei per testare a finestre macchina per iniezione a comando cieco?
Quali sono i contenuti del flag che si trova in /home/tryhackme/flag.txt?