MySQL injection
RootedCON é o evento de cibersegurança mais relevante na Espanha e um dos mais importantes na Europa. Com a missão de promover conhecimento técnico, este congresso é um ponto de encontro fervilhante para profissionais de tecnologia e cibersegurança em todas as disciplinas.
Comentários
Funções Interessantes
Confirmar Mysql:
Funções úteis
Todas as injeções
de https://labs.detectify.com/2013/05/29/the-ultimate-sql-injection-payload/
Fluxo
Lembre-se de que em versões "modernas" do MySQL você pode substituir "information_schema.tables" por "mysql.innodb_table_stats" (Isso pode ser útil para contornar WAFs).
Apenas 1 valor
group_concat()
Limit X,1
Cego um por um
substr(version(),X,1)='r'
ousubstring(version(),X,1)=0x70
ouascii(substr(version(),X,1))=112
mid(version(),X,1)='5'
Cego adicionando
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 colunas
Usando um simples ORDER
Baseado em Union MySQL
SSRF
Aprenda aqui diferentes opções para abusar de uma injeção Mysql para obter um SSRF.
Truques de bypass de WAF
Alternativas de information_schema
Lembre-se de que em versões "modernas" do MySQL você pode substituir information_schema.tables por mysql.innodb_table_stats ou por sys.x$schema_flattened_keys ou por sys.schema_table_statistics
MySQLinjection sem VÍRGULAS
Selecione 2 colunas sem usar nenhuma vírgula (https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma):
Recuperando valores sem o nome da coluna
Se em algum momento você souber o nome da tabela, mas não souber o nome das colunas dentro da tabela, você pode tentar descobrir quantas colunas existem executando algo como:
Supondo que existam 2 colunas (sendo a primeira o ID) e a outra a flag, você pode tentar forçar a entrada do conteúdo da flag tentando caractere por caractere:
Mais informações em https://medium.com/@terjanq/blind-sql-injection-without-an-in-1e14ba1d4952
História do MySQL
Você pode ver outras execuções dentro do MySQL lendo a tabela: sys.x$statement_analysis
Versões alternativas
Outros guias de injeção MYSQL
Referências
RootedCON é o evento de cibersegurança mais relevante na Espanha e um dos mais importantes na Europa. Com a missão de promover conhecimento técnico, este congresso é um ponto de encontro fervilhante para profissionais de tecnologia e cibersegurança em todas as disciplinas.
Last updated