MySQL injection
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
RootedCON é o evento de cibersegurança mais relevante na Espanha e um dos mais importantes na Europa. Com a missão de promover o conhecimento técnico, este congresso é um ponto de encontro fervilhante para profissionais de tecnologia e cibersegurança em todas as disciplinas.
from https://labs.detectify.com/2013/05/29/the-ultimate-sql-injection-payload/
Lembre-se de que nas versões "modernas" do MySQL você pode substituir "information_schema.tables" por "mysql.innodb_table_stats" (Isso pode ser útil para contornar WAFs).
group_concat()
Limit X,1
substr(version(),X,1)='r'
ou substring(version(),X,1)=0x70
ou ascii(substr(version(),X,1))=112
mid(version(),X,1)='5'
LPAD(version(),1...comprimento(version()),'1')='asd'...
RPAD(version(),1...comprimento(version()),'1')='asd'...
SELECT RIGHT(version(),1...comprimento(version()))='asd'...
SELECT LEFT(version(),1...comprimento(version()))='asd'...
SELECT INSTR('foobarbar', 'fo...')=1
Usando um simples ORDER
Aprenda aqui diferentes opções para abusar de uma injeção Mysql para obter um SSRF.
Quando consultas empilhadas são permitidas, pode ser possível contornar WAFs atribuindo a uma variável a representação em hex do comando que você deseja executar (usando SET), e então usar os comandos PREPARE e EXECUTE do MySQL para, em última análise, executar a consulta. Algo assim:
Para mais informações, consulte este post no blog.
Lembre-se de que nas 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.
Selecione 2 colunas sem usar nenhuma vírgula (https://security.stackexchange.com/questions/118332/how-make-sql-select-query-without-comma):
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 haja 2 colunas (sendo a primeira o ID) e a outra o flag, você pode tentar forçar o conteúdo do flag tentando caractere por caractere:
Mais informações em https://medium.com/@terjanq/blind-sql-injection-without-an-in-1e14ba1d4952
Você pode ver outras execuções dentro do MySQL lendo a tabela: sys.x$statement_analysis
RootedCON é o evento de cibersegurança mais relevante na Espanha e um dos mais importantes na Europa. Com a missão de promover o conhecimento técnico, este congresso é um ponto de encontro fervilhante para profissionais de tecnologia e cibersegurança em todas as disciplinas.
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)