🚀 Introducción a SQLMap
Al comenzar con SQLMap, lo primero que suele revisar un usuario es el mensaje de ayuda. SQLMap ofrece dos niveles:
-
Ayuda básica (-h) → opciones más comunes
-
Ayuda avanzada (-hh) → todas las opciones disponibles
📘 Ayuda básica (-h)
sqlmap -h
Salida:

📚 Ayuda avanzada (-hh)
sqlmap -hh
Salida:

Para mayor profundidad, consulta la wiki oficial del proyecto.
🧪 Escenario básico de uso
El pentester encuentra una página que recibe un parámetro GET vulnerable:
http://www.example.com/vuln.php?id=1
Y quiere comprobar si existe SQL Injection.
Código PHP vulnerable:
$link = mysqli_connect($host, $username, $password, $database, 3306);
$sql = "SELECT * FROM users WHERE id = " . $_GET["id"] . " LIMIT 0, 1";
$result = mysqli_query($link, $sql);
if (!$result)
die("<b>SQL error:</b> ". mysqli_error($link) . "<br>\n");
Como los errores SQL están habilitados, es muy fácil detectar la vulnerabilidad manualmente.
❗ Ejemplo de error al manipular parámetros
Prueba manual:
http://www.example.com/vuln.php?id=1'
Esto muestra un error SQL → indicio claro de vulnerabilidad.
🧨 Ejecutar SQLMap contra el objetivo
sqlmap -u "http://www.example.com/vuln.php?id=1" --batch
Salida resumida:
-
Detecta contenido dinámico
-
Identifica posible inyección
-
Confirma técnicas:
✔ Boolean-based
✔ Error-based
✔ Time-based
✔ UNION-based
También detecta:
web technology: PHP 5.2.6, Apache 2.2.9 DBMS: MySQL >= 5.0
Los datos se guardan en:
~/.sqlmap/output/www.example.com
📌 Nota sobre el parámetro --batch
--batch evita preguntas interactivas y usa siempre la opción por defecto.
Ideal para automatizar pruebas.