SQLi

Crítico

SQL Injection

Definición

SQL Injection (SQLi) es una vulnerabilidad que permite a un atacante interferir con las consultas SQL que una aplicación envía a su base de datos. Mediante la inyección de código SQL malicioso en campos de entrada, el atacante puede leer, modificar o eliminar datos, e incluso ejecutar comandos en el sistema operativo.

Impacto

Lectura completa de la base de datos (usuarios, contraseñas, datos sensibles)Modificación o eliminación de datosBypass de autenticaciónEjecución de comandos en el sistema operativo (en ciertos DBMS)Exfiltración masiva de datos personales

Ejemplos

SQLi de autenticación bypass

Al inyectar ' OR 1=1 -- en el campo de usuario, la condición siempre es verdadera y el comentario (--) ignora el resto de la consulta, permitiendo acceso sin credenciales válidas.

-- Consulta original
SELECT * FROM users WHERE username = 'INPUT' AND password = 'INPUT';

-- Payload del atacante en el campo username:
' OR 1=1 --

-- Consulta resultante
SELECT * FROM users WHERE username = '' OR 1=1 --' AND password = '';

SQLi UNION para extraer datos

La técnica UNION permite combinar los resultados de la consulta original con una consulta personalizada del atacante, extrayendo datos de otras tablas como usuarios y contraseñas.

# URL vulnerable
https://ejemplo.com/productos?id=1

# Payload UNION
https://ejemplo.com/productos?id=1 UNION SELECT username, password, email FROM users--

# Primero hay que determinar el número de columnas:
?id=1 ORDER BY 3-- (si funciona, hay al menos 3 columnas)

Blind SQLi basado en tiempo

Cuando la aplicación no muestra errores ni resultados visibles, el atacante puede usar funciones de retardo (SLEEP) para inferir información carácter por carácter según el tiempo de respuesta.

# El atacante infiere datos por el tiempo de respuesta
?id=1 AND IF(SUBSTRING(@@version,1,1)='5', SLEEP(5), 0)--

# Si la respuesta tarda 5 segundos, la primera letra de la versión es '5'
# Se repite carácter por carácter para extraer información

Practica SQLi con labs reales

Aplica lo que has aprendido en entornos seguros basados en reportes de bug bounty.

Ver labs de práctica
2.786

hunters entrenando

63

labs de hackeos reales

1.767

completaciones

$14.790

pagados por estos bugs

37 flags capturadas esta semana·Hackeos reales de HackerOne · YesWeHack · Bugcrowd·Sin permanencia·Academy gratis
Gratis · sin cuenta

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.

BBLabs · bug bounty en español

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.

Entrar a la comunidad de BBLABS en Discord
Entrar al Discord

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