PortSwigger · SQL Injection
Teoría y explicación en Hacking web → SQL Injection.
Labs completados
| # | Lab | Tipo |
|---|---|---|
| 1 | WHERE clause: recuperar datos ocultos | Básico |
| 2 | Saltar el login | Básico |
| 3 | UNION: número de columnas | UNION |
| 4 | UNION: columna que acepta texto | UNION |
| 5 | UNION: datos de otras tablas | UNION |
| 6 | UNION: varios valores en una columna | UNION |
| 7 | Tipo y versión de BD en Oracle | Fingerprint |
| 8 | Tipo y versión de BD en MySQL/Microsoft | Fingerprint |
| 9 | Listar contenido de BD (no Oracle) | Enumeración |
| 10 | Listar contenido de BD (Oracle) | Enumeración |
| 11 | Ciega con respuestas condicionales | Ciega |
| 12 | Ciega con errores condicionales | Ciega |
| 13 | Basada en errores visibles | Errores |
| 14 | Ciega con retardos de tiempo | Ciega (tiempo) |
| 15 | Ciega con retardos y extracción de datos | Ciega (tiempo) |
Patrones que más me han servido
sql
' ORDER BY 3-- -- cuántas columnas
' UNION SELECT NULL,'a'-- -- qué columna es texto
' AND (SELECT SUBSTRING(password,1,1) FROM users WHERE username='administrator')='a'--El último es el esquema de la inyección ciega: adivinar el dato carácter a carácter y mirar si la respuesta cambia.
