MySQL injection
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 clave para profesionales de tecnología y ciberseguridad en todas las disciplinas.
Comentarios
Funciones Interesantes
Confirmar Mysql:
Funciones útiles
Todas las inyecciones
Desde https://labs.detectify.com/2013/05/29/the-ultimate-sql-injection-payload/
Flujo
Recuerda que en versiones "modernas" de MySQL puedes sustituir "information_schema.tables" por "mysql.innodb_table_stats" (esto podría ser útil para evadir 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 añadiendo
LPAD(version(),1...lenght(version()),'1')='asd'...
RPAD(version(),1...lenght(version()),'1')='asd'...
SELECT RIGHT(version(),1...lenght(version()))='asd'...
SELECT LEFT(version(),1...lenght(version()))='asd'...
SELECT INSTR('foobarbar', 'fo...')=1
Detectar número de columnas
Usando un simple ORDER
Basado en Union de MySQL
SSRF
Aprende aquí diferentes opciones para abusar una inyección de MySQL para obtener un SSRF.
Trucos de bypass de WAF
Alternativas de information_schema
Recuerda que en 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 de MySQL sin COMAS
Selecciona 2 columnas sin usar ninguna coma (https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma):
Recuperación de valores sin el nombre de la columna
Si en algún momento conoces el nombre de la tabla pero no sabes los nombres de las columnas dentro de la tabla, puedes intentar encontrar cuántas columnas hay ejecutando algo como:
Suponiendo que hay 2 columnas (siendo la primera el ID) y la otra la bandera, puedes intentar forzar el contenido de la bandera 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 alternativas
Otros 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 clave para profesionales de tecnología y ciberseguridad en todas las disciplinas.
Última actualización