Tutorial de SQLmap

Ejecutar sqlmap por ti mismo no es difícil.
Este tutorial te llevará de noob a ninja con esta poderosa herramienta de pruebas de inyección sql.

Sqlmap es una herramienta basada en python, lo que significa que normalmente se ejecutará en cualquier sistema con python. Sin embargo, nos gusta Linux y específicamente Ubuntu, simplemente hace que sea fácil de hacer las cosas. Python viene ya instalado en Ubuntu. Esta es la misma herramienta que utilizamos en nuestro sitio de pruebas de inyección de sql en línea.

Para empezar con sqlmap, es cuestión de descargar la herramienta, desempaquetarla y ejecutar el comando con las opciones necesarias. Como es posible que haya usuarios de Windows entre vosotros, primero empezaré con cómo poner en marcha una instalación de Ubuntu. Es fácil empezar con un sistema Linux Ubuntu, incluso si la idea de Linux provoca espasmos de miedo. Quién sabe, puede que incluso te guste.

Contenido:
– Instalar SQLmap
– HTTP GET
– Bloquearse
– Tablas de la base de datos
– Volcar los datos
– Consejos
– Salida verbosas
– Credenciales de la base de datos
– Credenciales de conexión a la BD

Instalar SQLmap

Paso 1: Consigue un sistema operativo basado en Linux

Si vas a ejecutar SQLmap en Windows con Python, asegúrate de tener instalado Python, y salta al siguiente paso. Si no es así, ponga en marcha su sistema Linux. O bien instala una máquina virtual Linux (se recomienda Ubuntu o Kali) en Windows (Virtualbox / VMware / Parrallels) o arranca tu escritorio Linux.

Si ejecutas Microsoft Windows como tu sistema operativo principal, es conveniente y sencillo ejecutar una instalación de Ubuntu Linux (o Kali Linux) en una máquina virtual. A continuación, puede jugar con sqlmap, nmap, nikto y openvas junto con un centenar de otras poderosas herramientas de seguridad de código abierto.

Paso 2: Instalación de SQLmap

Python está preinstalado en Ubuntu, por lo que todo lo que necesita hacer es clonar el último repositorio de git y comenzar sus pruebas.

Cambia al directorio y ejecuta el script de python para asegurarte de que todo se ve bien.

Si no ves algo como la salida anterior, asegúrate de que python está funcionando (prueba con python -V) para comprobar la versión y que estás en la ubicación correcta. Ahora vamos a seguir adelante esta fue la parte fácil.

Para obtener una lista completa de las opciones disponibles ejecutar python sqlmap.py -h.

Ejecutando SQLmap

Simple prueba basada en HTTP GET

En esta sencilla prueba utilizaremos una petición estándar basada en HTTP GET contra un URI con un parámetro (?id=5). Esto probará diferentes métodos de inyección SQL contra el parámetro id.

python sqlmap.py -u 'http://mytestsite.com/page.php?id=5'

En los resultados podemos ver los diferentes métodos utilizados contra el parámetro.

Bloqueo por el Web Application Firewall – WAF

Intenta utilizar un agente de usuario diferente al predeterminado sqlmap con el parámetro --randomagent.

Recuperar las Tablas de la Base de Datos

SQLmap puede ser usado para probar y explotar la Inyección SQL, haciendo cosas como extraer datos de las bases de datos, actualizar tablas, e incluso abrir shells en hosts remotos si todos los patos están alineados.

Recuperemos las tablas de la base de datos usando la vulnerabilidad de Inyección SQL que confirmamos anteriormente. Como verás en la salida de abajo, podemos seguir probando contra el objetivo sin tener que volver a probar la vulnerabilidad. SQLmap utiliza la información que conoce sobre el sitio para seguir explotando la base de datos objetivo.

Para recuperar los datos simplemente añadimos un parámetro al comando anterior. Añadiendo --tables podemos intentar recuperar todas las tablas.

Volcar los datos

Para obtener datos simplemente ampliamos nuestro comando. Añadiendo -T users nos centraremos en la tabla de usuarios de la que podríamos obtener algunas credenciales. Añadiendo --dump le diremos a SQLmap que coja todos los datos de la tabla de usuarios, primero se enumerarán las columnas y luego se volcarán los datos de las mismas.

Consejos de SQLmap – Hazte ninja en tus pruebas de inyección SQL

Salida verbosísima

Cuando se hacen pruebas de inyección SQL, a menudo es necesario indagar en las peticiones manualmente para determinar problemas con la prueba o para confirmar o incluso explotar más una inyección descubierta. Ser capaz de aumentar la verbosidad de la salida de su SQLmap ayudará con estas pruebas.

Al aumentar la verbosidad a 4 se pueden obtener las peticiones HTTP, con 5 también se ven las cabeceras de respuesta HTTP y 6 mostrará la respuesta HTTP completa. Obviamente, esto puede ser muy ruidoso, pero a veces es necesario ver lo que está sucediendo.

¿Tienes credenciales de base de datos?

Este práctico consejo te permite conectarte a la base de datos directamente y volcar datos como usuarios, bases de datos o tablas. Lo bueno de esto es que no tienes que recordar la sintaxis SQL de la base de datos o tener un cliente instalado. SQLmap hará el trabajo pesado actuando como un cliente de base de datos para volcar los datos.

Cadenas de conexión a la base de datos:

MySQL, Oracle, Microsoft SQL Server, PostgreSQL
DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME
SQLite, Microsoft Access
DBMS://DATABASE_FILEPATH

Popping Shells y más

SQLmap tiene un número ridículo de opciones, y es una herramienta increíble para convertirse en uno con una base de datos. Aparte de hacer estallar las conchas en el host de destino, puede enviar solicitudes a través de tor, encontrar inyecciones en las respuestas de la página de forma automática, sitios de araña y, por supuesto, realizar pruebas basadas en HTTP POST. Estos ejemplos no son más que una muestra de la superficie. Encuentre más ejemplos en la excelente página wiki de github.

La inyección de SQL sigue siendo un objetivo favorito de los atacantes.

Utilice nuestro escáner de inyección de SQL para probar parámetros inyectables en una URI web.

Prueba de nivel siguiente con escáneres de vulnerabilidad de seguridad avanzados.

Herramientas de confianza. Alojado para facilitar el acceso.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.