Dopo aver completato il livello di Iniezione Comando OS in alto, stavo scavando un po 'più a fondo in modo da poterlo scrivere. Sembra che mentre la soluzione funziona sull'app web gli stessi errori di comando sul terminale Linux.
Comando DVWA per il livello alto
127.0.0.1| |cat /etc/passwd
Questo funziona. Non emette il risultato del ping ma stampa per visualizzare il contenuto di / etc / passwd
Se utilizzo lo stesso identico comando sul mio terminale Linux, questo errore. Codice utilizzato per simulare l'applicazione Web
ping -c 3 127.0.0.1| |cat /etc/passwd
Ho ricevuto l'errore
bash: syntax error near unexpected token '|'
Se rimuovo gli spazi, il comando funziona come previsto. Non riesco a spiegare perché il comando shell_exec di PHP passa il comando al sistema operativo, il sistema operativo lo esegue e visualizza il risultato, ma gli errori di approccio diretto. Tecnicamente il comando DVWA non dovrebbe funzionare?