MySQL injection
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
RootedCON es el evento de ciberseguridad más relevante en España y uno de los más importantes en Europa. Con la misión de promover el conocimiento técnico, este congreso es un punto de encuentro vibrante para profesionales de la tecnología y la ciberseguridad en cada disciplina.
Comments
Funciones Interesantes
Confirmar Mysql:
Funciones útiles
Todas las inyecciones
from https://labs.detectify.com/2013/05/29/the-ultimate-sql-injection-payload/
Flujo
Recuerda que en las versiones "modernas" de MySQL puedes sustituir "information_schema.tables" por "mysql.innodb_table_stats" (Esto podría ser útil para eludir WAFs).
Solo 1 valor
group_concat()
Limit X,1
Ciego uno por uno
substr(version(),X,1)='r'
osubstring(version(),X,1)=0x70
oascii(substr(version(),X,1))=112
mid(version(),X,1)='5'
Ciego sumando
LPAD(version(),1...longitud(version()),'1')='asd'...
RPAD(version(),1...longitud(version()),'1')='asd'...
SELECT RIGHT(version(),1...longitud(version()))='asd'...
SELECT LEFT(version(),1...longitud(version()))='asd'...
SELECT INSTR('foobarbar', 'fo...')=1
Detectar número de columnas
Usando un simple ORDER
MySQL Basado en Unión
SSRF
Aprende aquí diferentes opciones para abusar de una inyección Mysql para obtener un SSRF.
Trucos para eludir WAF
Alternativas a Information_schema
Recuerda que en las versiones "modernas" de MySQL puedes sustituir information_schema.tables por mysql.innodb_table_stats o por sys.x$schema_flattened_keys o por sys.schema_table_statistics
Inyección MySQL sin COMAS
Selecciona 2 columnas sin usar ninguna coma (https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma):
Recuperando valores sin el nombre de la columna
Si en algún momento conoces el nombre de la tabla pero no sabes el nombre de las columnas dentro de la tabla, puedes intentar averiguar cuántas columnas hay ejecutando algo como:
Supongamos que hay 2 columnas (siendo la primera el ID) y la otra el flag, puedes intentar forzar el contenido del flag probando carácter por carácter:
Más información en https://medium.com/@terjanq/blind-sql-injection-without-an-in-1e14ba1d4952
Historia de MySQL
Puedes ver otras ejecuciones dentro de MySQL leyendo la tabla: sys.x$statement_analysis
Versiones alternativass
Otras guías de inyección MYSQL
Referencias
RootedCON es el evento de ciberseguridad más relevante en España y uno de los más importantes en Europa. Con la misión de promover el conocimiento técnico, este congreso es un punto de encuentro vibrante para profesionales de la tecnología y la ciberseguridad en cada disciplina.
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)
Last updated