Web5: Injeção de SQL – Algumas técnicas para contornar mecanismos de filtragem

1. Trunque o conteúdo da consulta

Caso queira ignorar os scripts da consulta. Por exemplo, para o processamento abaixo, a consulta requer a condição active=1 mas podemos comentar (--, -- -, -+, #, /*, /**/, // , ;%00…) e ignore isto. Ao minerar, muitas vezes não sabemos o que o conteúdo restante da consulta faz, portanto, usar comentários nesse caso é muito eficaz.

Web5: Injeção de SQL – Algumas técnicas para contornar mecanismos de filtragem

Depois de comentar, nossa consulta se torna:

Web5: Injeção de SQL – Algumas técnicas para contornar mecanismos de filtragem

2. Ignorar a filtragem de palavras-chave

a. Comentários embutidos

Comentários embutidos são usados ​​de forma muito eficaz para contornar a filtragem de espaços em branco. Você pode usar os seguintes caracteres para ignorar a filtragem de espaços em branco: /**/, %20, %09, %0a, %0b, %0c, %0d, %a0). Por exemplo:

Web5: Injeção de SQL – Algumas técnicas para contornar mecanismos de filtragem

Ou ignore a filtragem de palavras-chave (disponível com MySql). No exemplo abaixo, as palavras-chave união e senha estão na lista negra e foram bloqueadas. Podemos contornar isso:

Web5: Injeção de SQL – Algumas técnicas para contornar mecanismos de filtragem

b. Substitua palavras-chave

Ao explorar a injeção de SQL, geralmente usamos palavras-chave como: union, select, information_schema... Em muitos casos, os programadores simplesmente substituem essas palavras-chave:

Web5: Injeção de SQL – Algumas técnicas para contornar mecanismos de filtragem

Podemos ver facilmente que falta o código de processamento acima. Se for simplesmente correspondência de padrões, o desvio é extremamente simples. Vamos aplicar a distinção entre maiúsculas e minúsculas, onde letras maiúsculas e minúsculas são interpretadas de forma diferente.

Agora, em vez de usar a palavra-chave:

select, union…

Nós vamos usar:

SeLEcT, UniOn…

A base desse desvio é que os sistemas de gerenciamento de banco de dados não fazem distinção entre palavras-chave case e case.

Em alguns casos, a aplicação web irá filtrar todas ou parte de determinadas palavras-chave (união, seleção...). Iremos contornar da seguinte forma:

id=1+uniunionon+SeLselectecT+1,2,3-- -

Depois que union e select forem filtrados pela aplicação web, ficaremos com a consulta correta da seguinte forma:

id=1+union+SeLecT+1,2,3-- -

c. Codificação de caracteres

Podemos ignorar quando o WAF (Web Application Firewall) bloqueia palavras-chave codificando-as. Muitos aplicativos WAF decodificarão a consulta apenas uma vez e filtrarão as palavras-chave da lista negra. Então, vamos codificar a solicitação duas vezes para que ela possa ser ignorada neste caso.

Web5: Injeção de SQL – Algumas técnicas para contornar mecanismos de filtragem

3. Ignorar bloqueia aspas simples e duplas

- Vejamos um exemplo antes de aprender especificamente sobre esse bypass.

Web5: Injeção de SQL – Algumas técnicas para contornar mecanismos de filtragem

Neste cenário, temos uma tabela no banco de dados chamada users. A próxima tarefa é saber o nome da coluna da tabela para obter suas informações. Como na consulta acima, usamos a condição: table_name='users'. Mas se aspas simples (') e aspas duplas (") forem bloqueadas pelo WAF, não poderemos mais usar 'usuários' ou "usuários". Então, como resolver esse problema? O sistema de banco de dados integrado nos fornece uma função que resolve muito bem esse problema, que é a função CHAR( ) (para Oracle é CHR()).Por exemplo, na consulta acima iremos contorná-la:

Web5: Injeção de SQL – Algumas técnicas para contornar mecanismos de filtragemWeb5: Injeção de SQL – Algumas técnicas para contornar mecanismos de filtragem

Os programadores PHP estão muito familiarizados com a função addlashes(). A função addlashes() tem o efeito de adicionar antes de caracteres especiais, como aspas simples ('), aspas duplas ("), barra invertida (\), caractere NUL (byte nulo) "\" para ajudar o sistema de gerenciamento de banco de dados. Existe nenhuma dificuldade e confusão ao lidar com strings contendo esses caracteres?Assim, quando queremos injetar na consulta de acordo com o script: name='someName' ou '1'='1'-- Os resultados não são mais o que esperávamos.

No entanto, existe uma técnica para ignorar a função addlashes() para injetar caracteres de aspas simples ('). Esta técnica já é pública há bastante tempo e a sua implementação é bastante difícil porque está ligada ao estilo de codificação aplicado ao site.

4. Ignore o erro "mistura ilegal de agrupamento para operação UNION"

Em alguns sistemas de gerenciamento (comumente encontrados no MySql), quando bancos de dados e tabelas foram configurados para agrupamento, ao usar a palavra-chave UNION, o erro "combinação ilegal de agrupamento para operação UNION" será relatado. A configuração do agrupamento pode ser devido à intenção do designer do banco de dados ou à configuração padrão do MySql. No caso de utilizar união, devemos garantir que a condição de seleção de valor em cada campo deve ter o tipo de código correspondente definido. Na minha opinião, esse erro é bastante comum, principalmente para CMSs rodando Apache MySql. As pessoas podem aprender mais em: http://bugs.mysql.com/bug.php?id=57926.
Neste caso, podemos usar formas de converter para o tipo de codificação apropriado.

Por exemplo no seguinte caso:

Web5: Injeção de SQL – Algumas técnicas para contornar mecanismos de filtragem

Na consulta acima, se a coluna1 tiver agrupamento definido como Unicode-UTF8 ou _latin1, por exemplo, então o que for selecionado na coluna2 terá que ser convertido para o código correspondente. Podemos forçar o estilo da seguinte forma:

Web5: Injeção de SQL – Algumas técnicas para contornar mecanismos de filtragem

Vemos uma desvantagem neste método de bypass: precisamos saber que o código agrupado é _latin1. A melhor maneira de contornar isso, na minha opinião, é usar as funções de codificação e decodificação hexadecimal e não hexadecimal.

Web5: Injeção de SQL – Algumas técnicas para contornar mecanismos de filtragem

Existem muitas outras funções que podem ser usadas em vez de hexadecimal e não hexadecimal.

Deixar um comentário

Como remover o aviso de solicitação de direitos autorais no canto direito da tela do Windows 10

Como remover o aviso de solicitação de direitos autorais no canto direito da tela do Windows 10

Você vê uma notificação de ativação do Windows 10 no canto direito da tela? Este artigo irá orientá-lo sobre como excluir o aviso de solicitação de direitos autorais no Windows 10.

Instruções do AZ sobre como instalar o Windows 10 build 14393.222

Instruções do AZ sobre como instalar o Windows 10 build 14393.222

Recentemente, a Microsoft lançou a atualização cumulativa mais recente para usuários de PC com Windows 10, chamada Build 14393.222. Esta atualização lançada para o Windows 10 corrige principalmente bugs com base no feedback do usuário e melhora a experiência de desempenho do sistema operacional.

Proteja sua rede de computadores com host Bastion em apenas 3 etapas

Proteja sua rede de computadores com host Bastion em apenas 3 etapas

Você tem computadores em sua rede local que precisam de acesso externo? Usar um host bastião como gatekeeper para sua rede pode ser uma boa solução.

3 maneiras de limpar rapidamente todos os logs de eventos no Windows 10

3 maneiras de limpar rapidamente todos os logs de eventos no Windows 10

Às vezes, pode ser necessário excluir logs de eventos antigos de uma só vez. Neste guia, Quantrimang.com mostrará três maneiras de excluir rapidamente todos os logs de eventos no Visualizador de Eventos do Windows 10.

Como criar uma tecla do Windows se o seu teclado não estiver disponível

Como criar uma tecla do Windows se o seu teclado não estiver disponível

Se você preferir usar um teclado clássico antigo, como o IBM Modelo M, que não inclui uma tecla física do Windows, existe um método fácil de adicionar mais, pegando emprestada uma tecla que você não usa com frequência.

Como criar modo de fundo transparente no Windows 10

Como criar modo de fundo transparente no Windows 10

WindowTop é uma ferramenta que tem a capacidade de escurecer todas as janelas de aplicativos e programas em execução em computadores com Windows 10. Ou você pode usar uma interface de fundo escuro no Windows.

Métodos de IP falso ajudam você a acessar anonimamente

Métodos de IP falso ajudam você a acessar anonimamente

Em muitos artigos anteriores, mencionamos que permanecer anônimo online é extremamente importante. Informações privadas vazam todos os anos, tornando a segurança online cada vez mais necessária. Essa também é a razão pela qual devemos usar endereços IP virtuais. Abaixo, aprenderemos sobre métodos para criar IPs falsos!

Como desativar a barra de idiomas na barra de tarefas do Windows 8

Como desativar a barra de idiomas na barra de tarefas do Windows 8

A barra de idiomas do Windows 8 é uma barra de ferramentas de idiomas em miniatura projetada para ser exibida automaticamente na tela da área de trabalho. No entanto, muitas pessoas desejam ocultar esta barra de idiomas na barra de tarefas.

Dicas para otimizar a velocidade da conexão com a Internet da Linksys

Dicas para otimizar a velocidade da conexão com a Internet da Linksys

Maximizar a velocidade da Internet é essencial para otimizar sua conexão de rede. Você pode ter uma ótima experiência de entretenimento e trabalho usando computadores, TVs com Internet, consoles de jogos, etc.

Como configurar WEP, WPA, WPA2 para roteador Linksys

Como configurar WEP, WPA, WPA2 para roteador Linksys

A conectividade sem fio é uma necessidade hoje e por isso a segurança sem fio é essencial para garantir a segurança da sua rede interna.