Tipos de injeção SQL: Exemplos de ataque

Types of SQL Injection: Attack Examples
Types of SQL Injection: Attack Examples

Como escrevemos em um dos artigos, SQL é uma linguagem de programação de consulta estruturada (SQL, Linguagem de consulta estruturada) que permite aos programadores se comunicarem com grandes bancos de dados em inglês quase simples. Também oferece a capacidade de acessar e manipular dados armazenados em tabelas no servidor. No caso de sites, as tabelas podem armazenar dados confidenciais, como logins, senhas, números de cartão de crédito, etc.. E se as devidas precauções não forem tomadas, sites podem ser enganados simplesmente executando consultas SQL maliciosas. Isso é chamado injeção SQL, e hoje examinaremos em detalhes que tipos disso existem.

injeção SQL tem diferentes métodos de uso, e todos eles podem causar sérios problemas. Por exemplo, com injeção SQL, um invasor pode ignorar a autenticação, acessar bancos de dados, e alterar ou excluir seu conteúdo. Às vezes injeção SQL pode ser usado para executar um comando no sistema operacional. Isso permitirá que o atacante cause danos ainda mais colossais, mesmo se a rede estiver protegida por um firewall. Convencionalmente injeção SQL pode ser dividido em três categorias principais – SQLi em banda, SQLi inferencial, e SQLi fora de banda.

SQLi em banda (SQL clássico)

Injeção de SQL em banda – ataque de injeção SQL mais comum e mais simples. Ocorre quando um invasor não consegue usar o mesmo canal de comunicação para lançar o ataque e coletar os resultados. Os tipos mais populares de in-band injeção SQL são SQLi baseado em erro e SQLi baseado em união.

A exfiltração de dados usando ataques in-band é feita por meio de mensagens de erro que aparecem no aplicativo da web acionadas pelo injeção SQL ataque ou usando a instrução UNION, que permite ao invasor inserir suas consultas SQL.

Injeção SQL Baseada em Erros

SQLi baseado em erro é um ataque, e depende de mensagens de erro que o servidor de banco de dados lança para obter informações sobre a estrutura do banco de dados. Às vezes, tudo o que é preciso é um injeção SQL baseado em erros, e um invasor pode enumerar todo o banco de dados. Os erros costumam ser úteis no estágio de desenvolvimento de um aplicativo da web, em um site ativo, eles devem ser desativados ou gravados em um arquivo restrito.

Injeção SQL baseada em união

Um SQLi baseado em mesclagem é uma técnica que usa a instrução UNION SQL para combinar os resultados de mais de duas instruções SELECT em um único resultado., que é então retornado como parte da resposta HTTP. A peculiaridade deste método é que ele só funcionará se o número de colunas retornadas pela primeira consulta for igual ao número de colunas retornadas pela segunda consulta..

LEIA TAMBÉM
Hacking refere-se ao hacking de dispositivos digitais, como computadores, smartphones, comprimidos, e até redes inteiras. O que é hackear: como os hackers hackeiam?

SQLi inferencial (SQLi cego)

Ao contrário do SQLi em banda, inferencial injeção SQL pode levar mais tempo para o invasor, mas não é menos perigoso que qualquer outra injeção de SQL. Em um ataque SQLi inferencial, os dados não são passados ​​​​pelo aplicativo da web, e o invasor não consegue ver o resultado do ataque dentro da banda (é por isso que esses ataques também são chamados “SQL cego injection attacks“). Em vez de, o invasor pode reconstruir a estrutura do banco de dados enviando a carga útil, e observando a resposta da aplicação web e o comportamento do servidor de banco de dados. SQLi baseado em booleano cego e SQLi baseado em tempo cego são dois tipos de injeção SQL. Mas não são apenas os sites que exibem dados retornados do banco de dados, que é vulnerável.

Types of SQL Injection: Attack Examples
Os principais tipos de injeções SQL

Baseado em booleano (baseado em conteúdo) SQLi cego

Baseado em booleano injeção SQL é um método SQLi inferencial que depende do envio de uma consulta SQL a um banco de dados, o que faz com que o aplicativo retorne um resultado diferente dependendo se a consulta retorna um resultado VERDADEIRO ou FALSO.

O conteúdo da resposta HTTP muda ou permanece o mesmo dependendo do resultado, permitindo que um intruso infira se a carga útil usada é verdadeira ou falsa, mesmo se nenhum dado for retornado do banco de dados. Este ataque geralmente é lento (especialmente para grandes bancos de dados) porque o invasor teria que listar o banco de dados caractere por caractere.

SQLi cego baseado em tempo

Temporário injeção SQL é um método SQLi inferencial, que se baseia no envio de uma consulta SQL ao banco de dados que faz com que o banco de dados espere um determinado período de tempo (em segundos) antes de responder. É o tempo de resposta que informa ao invasor se o resultado da consulta é VERDADEIRO ou FALSO.

A resposta HTTP será retornada com atraso ou imediatamente, dependendo do resultado, e permitirá ao invasor inferir se a carga usada é verdadeira ou falsa, mesmo se nenhum dado for retornado do banco de dados. Este ataque também costuma ser lento (especialmente para grandes bancos de dados) porque o hacker deve enumerar o banco de dados caractere por caractere.

Injeção de SQL fora de banda

Fora da banda injeção SQL é relativamente raro porque depende dos recursos habilitados no servidor de banco de dados usado pela aplicação web. Fora da banda injeção SQL ocorre quando um invasor não pode usar o mesmo canal para conduzir um ataque e coletar os resultados. Métodos fora de banda para hackers são uma alternativa aos métodos baseados em tempo, especialmente se as respostas do servidor não forem muito estáveis (o que reduz a eficácia de um ataque baseado no tempo).

Os métodos SQLi fora de banda dependem da capacidade de um servidor de banco de dados de fazer consultas DNS ou HTTP para entregar dados a um invasor. Refere-se ao comando xp_dirtree do Microsoft SQL Server, que pode ser usado para fazer consultas DNS a um servidor controlado pelo invasor, e o pacote UTL_HTTP Oracle Database, que pode ser usado para enviar consultas HTTP de SQL e PL/SQL para um servidor controlado pelo invasor.

Por Stephanie Adlam

Escrevo sobre como tornar sua navegação na Internet confortável e segura. Vale a pena fazer parte do mundo digital moderno e quero mostrar como fazê-lo da maneira adequada.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *