MySQL injection
Last updated
Last updated
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)
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.
from https://labs.detectify.com/2013/05/29/the-ultimate-sql-injection-payload/
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).
group_concat()
Limit X,1
substr(version(),X,1)='r'
o substring(version(),X,1)=0x70
o ascii(substr(version(),X,1))=112
mid(version(),X,1)='5'
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
Usando un simple ORDER
Aprende aquí diferentes opciones para abusar de una inyección Mysql para obtener un SSRF.
Cuando se permiten consultas apiladas, puede ser posible eludir los WAF asignando a una variable la representación hexadecimal de la consulta que deseas ejecutar (usando SET), y luego usar las sentencias MySQL PREPARE y EXECUTE para finalmente ejecutar la consulta. Algo como esto:
Para más información, consulte esta publicación de blog.
Recuerde que en las versiones "modernas" de MySQL puede sustituir information_schema.tables por mysql.innodb_table_stats o por sys.x$schema_flattened_keys o por sys.schema_table_statistics.
Seleccione 2 columnas sin usar ninguna coma (https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma):
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 hacer un ataque de fuerza bruta al 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
Puedes ver otras ejecuciones dentro de MySQL leyendo la tabla: sys.x$statement_analysis
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)