
Aplicación web PHP/MariaDB intencionalmente vulnerable para practicar vulnerabilidades comunes de seguridad web en múltiples niveles de dificultad en un entorno legal y controlado.
Damn Vulnerable Web Application (DVWA) es una aplicación web hecha en PHP/MySQL que es extremadamente vulnerable. Su principal objetivo es ayudar a profesionales de seguridad a poner a prueba sus habilidades y herramientas en un entorno legal, ayudar a desarrolladores web a comprender mejor los procesos de asegurar aplicaciones web y ayudar tanto a estudiantes como a profesores a aprender sobre seguridad de aplicaciones web en un entorno de clase controlado.
El objetivo de DVWA es practicar algunas de las vulnerabilidades web más comunes, con varios niveles de dificultad, con una interfaz sencilla y directa. Tener en cuenta que hay tanto vulnerabilidades documentadas como no documentadas en este software. Esto es intencional. Le animamos a que intente descubrir tantos problemas como sea posible.
¡Damn Vulnerable Web Application es extremadamente vulnerable! No la suba a la carpeta html pública de su proveedor de alojamiento ni a ningún servidor expuesto a Internet, ya que se verán comprometidos. Se recomienda utilizar una máquina virtual (como VirtualBox o VMware), que esté configurada en modo de red NAT. Dentro de una máquina huésped, puede descargar e instalar XAMPP para montar el servidor web y la base de datos.
No nos hacemos responsables de la forma en que cualquier persona utilice esta aplicación (DVWA). Hemos dejado claros los propósitos de la aplicación y no debe usarse de forma malintencionada. Hemos advertido y tomado medidas para evitar que los usuarios instalen DVWA en servidores web activos. Si su servidor web se ve comprometido por una instalación de DVWA, no es responsabilidad nuestra, sino de la persona o personas que lo subieron e instalaron.
Este archivo es parte de Damn Vulnerable Web Application (DVWA).
Damn Vulnerable Web Application (DVWA) es software libre: puede redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General GNU publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a su elección) cualquier versión posterior.
Damn Vulnerable Web Application (DVWA) se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA; ni siquiera la garantía implícita de COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la Licencia Pública General GNU para más detalles.
Debería haber recibido una copia de la Licencia Pública General GNU junto con Damn Vulnerable Web Application (DVWA). Si no es así, consulte https://www.gnu.org/licenses/.
Este archivo está disponible en varios idiomas:
Si desea contribuir con una traducción, envíe una PR (Pull Request). Tenga en cuenta, sin embargo, que esto no significa que sólo tiene que usar Google Translate y enviar el resultado de traducción de la herramienta, pues será rechazado. Envíe su versión traducida añadiendo un nuevo archivo 'README.xx.md' donde xx es el código de dos letras del idioma deseado (basado en ISO 639-1).
Aunque existen varias versiones de DVWA, la única versión con soporte es la última del repositorio oficial de GitHub. Usted puede clonarlo desde el repositorio:
git clone https://github.com/digininja/DVWA.git
O descargar un ZIP con todos los archivos.
La forma más fácil de instalar DVWA es descargar e instalar XAMPP si aún no tiene un servidor web configurado.
XAMPP es una distribución de Apache muy fácil de instalar para Linux, Solaris, Windows y Mac OS X. El paquete incluye el servidor web Apache, MySQL, PHP, Perl, un servidor FTP y phpMyAdmin.
Este video le guiará a través del proceso de instalación para Windows, pero debería ser similar para otros sistemas operativos.
DVWA se entrega con una plantilla del archivo de configuración que tendrá que copiar en su lugar y luego hacer los cambios apropiados. En Linux, suponiendo que se encuentra en el directorio DVWA, esto se puede hacer de la siguiente manera:
cp config/config.inc.php.dist config/config.inc.php
En Windows, esto puede ser un poco más difícil si está ocultando las extensiones de archivo, si no está seguro acerca de esto, esta publicación de blog explica más sobre eso:
Cómo hacer que Windows muestre las extensiones de archivo
Si utiliza una distribución de Linux basada en Debian, necesitará instalar los siguientes paquetes (o sus equivalentes):
Se recomienda hacer una actualización antes de esto, sólo para asegurarse de que va a obtener la última versión de todos los paquetes.
apt update
apt install -y apache2 mariadb-server mariadb-client php php-mysqli php-gd libapache2-mod-php
El sitio funcionará con MySQL en lugar de MariaDB, pero recomendamos MariaDB, ya que funciona con su instalación por defecto y sin cambio alguno, mientras que usted tendrá que hacer cambios para hacer que para MySQL funcione correctamente.
Para configurar la base de datos, simplemente haga clic en el botón Setup DVWA en el menú principal, a continuación, haga clic en el botón Create / Reset Database. Esto creará / reiniciará la base de datos e insertará algunos datos de ejemplo.
Si recibe un error al intentar crear su base de datos, asegúrese de que sus credenciales de la base de datos dentro de ./config/config.inc.php están correctamente escritas. Esto difiere de config.inc.php.dist, que es un archivo de ejemplo.
Las variables son las siguientes por defecto:
$_DVWA[ 'db_server'] = '127.0.0.1';
$_DVWA[ 'db_port'] = '3306';
$_DVWA[ 'db_user' ] = 'dvwa';
$_DVWA[ 'db_password' ] = 'p@ssw0rd';
$_DVWA[ 'db_database' ] = 'dvwa';
Nota, si está usando MariaDB en lugar de MySQL (MariaDB viene por defecto en Kali), entonces no podrá usar el usuario root de la base de datos, por tanto, debe crear un nuevo usuario de base de datos. Para hacer esto, debe conectarse a la base de datos como usuario root y usar los siguientes comandos:
mysql> create database dvwa;
Query OK, 1 row affected (0.00 sec)
mysql> create user dvwa@localhost identified by 'p@ssw0rd';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on dvwa.* to dvwa@localhost;
Query OK, 0 rows affected (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)