DVWA - Comportamento dell'iniezione del comando dispari (alto)

1

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?

    
posta Paulst30 26.01.2017 - 16:32
fonte

2 risposte

1

È causato dalla lista nera deliberatamente difettosa. Il tubo seguito dallo spazio viene sostituito con una stringa vuota. Il secondo tubo è immediatamente seguito da un c e quindi non corrisponde alla lista nera e quindi sfugge. Il primo tubo e lo spazio sono ridondanti. Anche Ip | cat dovrebbe funzionare, così come ip% 0acat e ip% 26% 26cat.

    
risposta data 27.01.2017 - 10:50
fonte
0

File Hign dell'iniezione del comando DVWA nella lista nera

// Imposta la lista nera $ sostituzioni = matrice (     '&' = > '',     ';' = > '',     '| '= > '',     '-' = > '',     "$" = > '',     '(' = > '',     ')' = > '',     '' '= > '',     '||' = > '', );

  • Questo è "& &" non nella lista nera.

  • Questo sta usando "& &"; ping -c4 127.0.0.1 & & echo "Ok!"

risposta data 27.01.2017 - 09:17
fonte

Leggi altre domande sui tag