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

Quale variabile memorizza l'input dell'utente nello snippet di codice PHP in questa attività?

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 carico utile utilizzerei se volessi determinare con quale utente è in esecuzione l'applicazione?

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?

Qual è il termine per il processo di "pulizia" dell'input dell'utente fornito a un'applicazione?
Con quale utente viene eseguita questa applicazione?

Quali sono i contenuti del flag che si trova in /home/tryhackme/flag.txt?

Videoguida

Circa l'autore

Creo note sulla sicurezza informatica, note di marketing digitale e corsi online. Fornisco anche consulenza di marketing digitale, inclusi ma non limitati a SEO, annunci Google e Meta e amministrazione CRM.

Visualizza articoli