Introducción
DVWA (Damn Vulnerable Web Application) es una aplicación web intencionadamente vulnerable diseñada para ayudar a los profesionales de la ciberseguridad a practicar habilidades de hacking ético en un entorno controlado. Esta herramienta permite a los usuarios aprender sobre vulnerabilidades comunes en aplicaciones web, y se utiliza principalmente en formaciones de pentesting y en entornos de laboratorio para simular ataques y aprender a mitigarlos. El público objetivo incluye desarrolladores, administradores de sistemas y cualquier profesional de seguridad informática que desee mejorar sus conocimientos sobre seguridad web y cómo proteger aplicaciones contra ataques.
Requisitos previos
- Un servidor con Ubuntu en versión 20.04 o superior, instalado y configurado.
- Acceso a terminal y privilegios de sudo.
- Conocimientos básicos de administración de sistemas y uso de la línea de comandos.
- Conexión a Internet para la instalación de paquetes necesarios.
- Apache, MySQL y PHP instalados y configurados en el servidor.
Funcionamiento de DVWA
DVWA está construida utilizando PHP y MySQL, y contiene múltiples secciones que demuestran diferentes tipos de vulnerabilidades (como SQL injection, XSS, CSRF, etc.). Cada sección tiene un nivel de dificultad que permite a los usuarios ajustar el contexto de aprendizaje. Esto significa que se puede empezar desde un nivel básico y complicar progresivamente el escenario, lo que es ideal para entornos de enseñanza o autoaprendizaje.
El flujo de trabajo típico implica configurar el entorno, acceder a la aplicación a través del navegador, y ejecutar pruebas de penetración utilizando diversas técnicas y herramientas de seguridad. Para realizar pruebas, un buen entendimiento de cómo funcionan las aplicaciones web y las amenazas a las que están expuestas es esencial.
Instalación de DVWA
- Actualiza tus repositorios:
sudo apt update && sudo apt upgrade -y - Instala Apache, PHP y MySQL:
sudo apt install apache2 php php-mysql libapache2-mod-php mariadb-server -y - Inicia el servicio de Apache y MySQL:
sudo systemctl start apache2sudo systemctl start mariadb - Asegura la instalación de MySQL:
sudo mysql_secure_installation - Descarga DVWA:
cd /var/www/html && sudo git clone https://github.com/digininja/DVWA.git - Cambia los permisos del directorio DVWA:
sudo chown -R www-data:www-data DVWA - Crea la base de datos DVWA:
sudo mysql -u root -pCREATE DATABASE dvwa;GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwauser'@'localhost' IDENTIFIED BY 'password';FLUSH PRIVILEGES;EXIT; - Configura el archivo de configuración:
cd DVWA/config && sudo cp config.inc.php.dist config.inc.phpsudo nano config.inc.php(Actualiza las credenciales de la base de datos si es necesario)
- Accede a DVWA a través del navegador:
http:///DVWA/setup.php - Configura DVWA:(Sigue las instrucciones para inicializar la base de datos)
Uso avanzado y opciones más utilizadas
DVWA ofrece varios modos de seguridad que permiten ajustar la dificultad de las pruebas:
- Low: Sin protección; ideal para principiantes.
- Medium: Protecciones básicas de entrada; introduce validación simple.
- High: Requiere conocimientos de exploits más avanzados; aplicadas medidas de seguridad más estrictas.
Comandos y funciones útiles
Al interactuar con DVWA, es posible utilizar varias herramientas de prueba que en combinación con la aplicación permiten profundizar en las vulnerabilidades. Algunas de ellas incluyen:
- Burp Suite: Herramienta de interceptación de tráfico que permite manipular solicitudes HTTP.
- sqlmap: Automática para detectar y explotar inyecciones SQL.
- Nmap: Herramienta de escaneo de redes para descubrir servicios activos y versiones.
Casos de uso reales en entornos profesionales
DVWA se utiliza ampliamente en:
- Formaciones de pentesting: Para educar a los nuevos profesionales sobre vulnerabilidades comunes.
- Pruebas de seguridad: Para validar la resistencia de aplicaciones en desarrollo.
- Simulaciones de ataques: Para que el personal de seguridad compreenda y anticipe posibles brechas.
Errores comunes
- No actualizar la configuración del archivo: Asegúrate de que las credenciales de la base de datos son correctas en config.inc.php.
- Permisos incorrectos: Verifica que el directorio tenga los permisos adecuados para que el servidor web acceda a los archivos.
- Fallas en la conexión a MySQL: Comprueba que el servidor de MySQL esté corriendo y acepte conexiones.
Checklist final
- Confirmar que Apache y MySQL están activos.
- Verificar la correcta configuración de config.inc.php.
- Asegurarse de que la base de datos ‘dvwa’ está creada y accesible.
- Comprobar que el directorio DVWA tiene los permisos correctos.
- Probar el acceso a DVWA desde un navegador y confirmar que todas las funcionalidades están operativas.
