Después de completar el nivel de Inyección de Comando del SO en Alto, estaba ahondando un poco más para poder escribirlo. Parece que mientras la solución funciona en la aplicación web, los mismos errores de comando en el terminal de Linux.
Comando DVWA para el nivel alto
127.0.0.1| |cat /etc/passwd
Esto funciona. No muestra el resultado del ping, pero imprime en la pantalla el contenido de / etc / passwd
Si uso exactamente el mismo comando en mi terminal de Linux, se produce un error. Código utilizado para imitar la aplicación web
ping -c 3 127.0.0.1| |cat /etc/passwd
Recibo el error
bash: syntax error near unexpected token '|'
Si elimino los espacios, el comando funciona como se esperaba. No puedo explicar por qué el comando PHP shell_exec pasa el comando al sistema operativo, el sistema operativo lo ejecuta y muestra el resultado, pero los errores de aproximación directa. Técnicamente, el comando DVWA no debería funcionar.