DVWA - Comportamiento de inyección de comando impar (Alto)

1

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.

    
pregunta Paulst30 26.01.2017 - 16:32
fuente

2 respuestas

1

Es causado por la lista negra deliberadamente defectuosa. La tubería seguida por el espacio se reemplaza con una cadena vacía. La segunda tubería es seguida inmediatamente por una c y, por lo tanto, no coincide con la lista negra y, por lo tanto, se desliza. La primera tubería y el espacio son redundantes. Ip | cat también debería funcionar, al igual que ip% 0acat y ip% 26% 26cat.

    
respondido por el wireghoul 27.01.2017 - 10:50
fuente
0

Archivo de inicio de inyección de comandos DVWA en la lista negra

// Establecer lista negra $ sustituciones = array (     '&erio;' = > '',     ';' = > '',     '| '= > '',     '-' = > '',     '$' = > '',     '(' = > '',     ')' = > '',     '' '= > '',     '||' = > '', );

  • Esto es "& &" no en la lista negra.

  • Esto está usando "& &"; ping -c4 127.0.0.1 & & echo "Ok!"

respondido por el ugur.ercan 27.01.2017 - 09:17
fuente

Lea otras preguntas en las etiquetas