Notícias de dispositivos móveis, gadgets, aplicativos Android

Pentesting de aplicativos da Web ‚Äď inje√ß√£o manual de SQL com m√©todo de string baseado em erro

Injeção SQL é a técnica de injeção de código para obter acesso ao banco de dados (MySQL, MSSQL, Oracle etc). Lançamento do Owasp 2018 ainda descreve esta injeção como A1 ou Nível 1 injeção que é o ataque mais perigoso de todos os tempos.

SANS Top 25(Erros de software mais perigosos) descreve a inje√ß√£o de SQL como neutraliza√ß√£o inadequada de elementos especiais usados ‚Äč‚Äčem um comando SQL (‘inje√ß√£o de SQL’) como classifica√ß√£o 1 de Inje√ß√£o.

A automação dessa injeção pode ser realizada com uma grande quantidade de ferramentas disponíveis na internet. Melhor do que ferramentas Os humanos têm pensamento criativo e tomada de decisão para compreender o alvo, por isso preferi a penetração manual.

Leia tamb√©m SQLMAP ‚Äď Detec√ß√£o e explora√ß√£o de inje√ß√£o de SQL ‚Äď Uma explica√ß√£o detalhada

NOTA: Escopo desta injeção SQL apenas para banco de dados MySQL backend. Se você testar o mesmo com Oracle ou algum outro banco de dados, nunca funcionará.

LABORAT√ďRIO ONLINE de inje√ß√£o SQL:

  • Iniciantes podem usar este site para praticar habilidades de inje√ß√£o de SQL
  • Para acessar o LAB Clique Aqui
  • A captura de tela acima ser√° sua tela de boas-vindas de sucesso.

ETAPA 1: Quebrando a consulta

  • Visitando o site http://leettime.net/sqlninja.com/tasks/basic_ch1.php?id=1
  • Vamos adicionar e verificar aspas simples ao URL existente para verificar se o site √© vulner√°vel √† inje√ß√£o de SQL adicionando http://leettime.net/sqlninja.com/tasks/basic_ch1.php?id=1′
  • Depois de adicionar aspas simples Se o site mostrar uma declara√ß√£o de erro ‚ÄúVoc√™ tem um erro na sintaxe SQL; verifique o manual que corresponde √† vers√£o do seu servidor MySQL para obter a sintaxe correta para usar pr√≥ximo a ‚ÄĚ1″‘ na linha 1
  • Isso √© √≥timo !!! √Č vulner√°vel √† inje√ß√£o de SQL
  • Isso ilustra que voc√™ quebrou a consulta com sucesso e o banco de dados de back-end est√° interagindo com o hacker com mensagens de erro.
N√≥s recomendamos:  As configura√ß√Ķes do Pixel Buds Pro ANC agora aparecem no menu de volume do Pixel, lan√ßado [U]

ETAPA 2: Copiando a declaração de erro

  • Copie e cole a instru√ß√£o SQL Error no Bloco de Notas.
  • Depois de copiar, execute a√ß√Ķes nas declara√ß√Ķes de erro, conforme mencionado na captura de tela abaixo
  • A figura acima ilustra que a aspa simples destacada est√° quebrando o banco de dados back-end
  • Agora imagine-se como DESENVOLVEDOR e adivinhe a instru√ß√£o SQL no banco de dados.
  • Espero que todos tenham adivinhado que a consulta de back-end √© assim Selecione nome de usu√°rio, senha da tabela onde id =’1′
  • Quando adicionamos aspas simples que n√£o correspondem √† consulta como esta Selecione nome de usu√°rio, senha da tabela onde id =’1‚ÄĚ
  • Isso √© chamado como Inje√ß√£o de string baseada em erro de aspas simples.

ETAPA 3: Juntando-se à consulta

  • Vamos adicionar ‚Äď+ para juntar-se √† consulta http://leettime.net/sqlninja.com/tasks/basic_ch1.php?id=1‚Ä≤ ‚Äď+
  • A figura acima ilustra erros SQL corrigidos com ‚Äď+
  • Qualquer c√≥digo malicioso colocado ir√° conversar com o banco de dados e a partir de agora voc√™ quebrou a consulta com sucesso, juntou-se √† consulta e finalmente descobriu que √© um erro de aspas simples baseado em inje√ß√£o de corda.

ETAPA 4: Encontrando as colunas de back-end

  • √Č hora de conversar com o banco de dados para descobrir o n√ļmero de colunas. Para enumerar colunas podemos usar ordenar por comando.

Portanto, a figura acima n√£o ilustra erros de SQL, o que significa que h√° 1 coluna no banco de dados.

  • Deixe-me verificar o resto das colunas com uma ordem por 2ordenar por 3etc.

Portanto, a figura acima n√£o ilustra erros de SQL, isso ainda mostra 3 colunas est√£o presentes no banco de dados.

  • Deixe-me verificar com mais uma coluna com uma ordem por 4

A figura acima mostra o banco de dados com a declara√ß√£o de erro Coluna desconhecida ‘4’ em ‘a cl√°usula de pedido e esta declara√ß√£o de erro diz como ‚ÄúExistem apenas 3 colunas no banco de dados‚ÄĚ.Espero que voc√™ entenda como conversar com um banco de dados com erros.

N√≥s recomendamos:  Como usar upsell e vendas cruzadas para maximizar a receita

ETAPA 5: Encontrando as tabelas de back-end

  • O backend SQL tamb√©m pode conter mais nomes de tabelas com dados vazios. Portanto, voc√™ deve primeiro ser capaz de descobrir quais nomes de tabelas est√£o presentes nestes 3 colunas.
  • Agora podemos selecionar todos 3 colunas com uni√£o todos selecionam para URL existente http://leettime.net/sqlninja.com/tasks/basic_ch1.php?id=-1‚Ä≤ uni√£o todos selecionam 1,2,3 ‚Äď+
  • A figura ilustrada acima mostra que o nome de usu√°rio √©: 2 j√° que o valor que representa os nomes das tabelas est√° presente na 2¬™ coluna do banco de dados. Agora encontramos com sucesso o local da tabela no banco de dados.

ETAPA 6: Encontrando os nomes das tabelas de back-end

  • J√° sab√≠amos a localiza√ß√£o do caminho da tabela, ent√£o perguntaremos diretamente o nome do banco de dados, vers√£o, etc.
  • A figura ilustrada acima mostra que o banco de dados backend revela seu nome de banco de dados:leettime_761wHole
  • Vamos fazer o mesmo para verificar os detalhes da vers√£o do banco de dados com version()
  • A figura ilustrada acima mostra a vers√£o do banco de dados backend: 5.6.36-cl-lve

ETAPA 7: Despejando tabelas de banco de dados

  • Group_concat() √© a fun√ß√£o que retorna uma string com o valor n√£o NULL concatenado de um grupo.
  • Portanto, podemos usar esta fun√ß√£o para listar todas as tabelas do banco de dados.
  • Al√©m disso, podemos usar Information_Schema para visualizar metadados sobre os objetos em um banco de dados.
  • A figura acima mostra o dump de todas as tabelas como testtable1, registros do usu√°rio, Usu√°rios.

ETAPA 8: Despejando todos os dados em colunas de tabelas

  • Aqui vou despejar para os usu√°rios da tabela.
  • A figura acima mostra o dump de todas as colunas de tabelas contendo id, nome de usu√°rio, senha, tipo de usu√°rio, c√≥digo_sec
  • Aqui os nomes de usu√°rio e senhas s√£o os mais confidenciais. ent√£o vamos despejar !!!
N√≥s recomendamos:  Ganhe dinheiro testando aplicativos Android com WHAFF

ETAPA 9: Despejando todos os nomes de usu√°rio

  • Aqui podemos despejar todos os nomes de usu√°rio no banco de dados.
  • A figura acima mostra o despejo de todos os nomes de usu√°rio injetor, descompilador, ca√ßador de dem√īnios, Zen, Zenodermus, grayhat, khan, admin
  • Se eu conseguir a credencial para um administrador conta que vai ser √≥timo!

PASSO 10: Descartando todas as senhas

  • Agora podemos usar a fun√ß√£o group_concat para chamar senhas de usu√°rios.
  • A figura acima mostra o despejo de todas as senhas dos usu√°rios: Khan,hacktract,dante,sec-idiotas,security-i, hacker, haxor, sadmin
  • N√≥s conseguimos o administrador senha da conta como administrador ! Feliz Hacking!!!

Table of Contents