Web14: Problemas de segurança no protocolo HTTP

Este artigo apresenta alguns problemas de segurança no protocolo HTTP , levantados em dois documentos RFC 7230 e RFC 7231. Exemplos no artigo sobre erros específicos são referenciados no OWASP.

1. Riscos de fatores intermediários

O HTTP permite o uso de intermediários para responder às solicitações através de uma série de conexões. Existem três elementos intermediários comuns: proxy, gateway e túnel.

Uma solicitação ou resposta terá que passar pelos pontos A, B e C. Eles podem acessar informações confidenciais transmitidas, como informações pessoais de usuários ou organizações. A falta de atenção dada à segurança e à privacidade por parte dos intermediários pode levar a uma vasta gama de ataques potenciais.

Os desenvolvedores e desenvolvedores de sistemas devem considerar fatores de privacidade e segurança durante o processo de design, codificação e implantação do sistema.

Os usuários precisam estar cientes dos perigos do uso de proxies ou gateways não confiáveis.

2. Divisão de resposta

A divisão de resposta (também conhecida como injeção CRLF) é uma técnica popular de exploração da web. O invasor envia dados codificados, em alguns parâmetros da solicitação, que são então decodificados e repetidos em determinado campo do cabeçalho da resposta.

Se esses dados forem um símbolo que representa o fim da resposta e uma resposta subsequente for iniciada, a resposta original será dividida em duas e o conteúdo da segunda resposta será controlado pelo invasor. O invasor pode então fazer outra solicitação dentro da mesma conexão persistente e enganar o destinatário (incluindo intermediários) fazendo-o acreditar que esta segunda resposta é uma resposta à segunda solicitação.

3. Solicitar Contrabando

O contrabando de solicitações é uma técnica que explora diferenças no processamento de solicitações por diferentes tipos de servidores para ocultar solicitações aparentemente inofensivas anexadas à solicitação original.

Vamos considerar o seguinte exemplo:

Suponha que uma solicitação POST contenha dois campos de “comprimento do conteúdo” no cabeçalho com dois valores diferentes. Alguns servidores negarão esta solicitação (IIS e Apache), mas outros não. Por exemplo, o SunONE W/S 6.1 usa o campo Content-length primeiro, enquanto o sunONE Proxy 3.6 usa o campo Content-length em segundo lugar.

Supondo que SITE seja o DNS de um SunONE W/S, localizado atrás de um SunONE Proxy, há um arquivo Poison.html localizado no SunONE W/S. Veja como explorar a sugestão de solicitação HTTP com base em inconsistências no processamento entre dois servidores:

Web14: Problemas de segurança no protocolo HTTP

[Observe que cada linha termina com um CRLF (“”), exceto a linha 10]

Vamos considerar o que acontece quando uma solicitação é enviada ao W/S através do servidor Proxy. Primeiro, o proxy analisará a solicitação das linhas 1 a 7 (azul) e encontrará dois campos Content-Length. Conforme mencionado acima, ele irá ignorar o primeiro campo e entender que o corpo da solicitação tem 44 bytes. Portanto, ele trata os dados das linhas 8 a 10 como o primeiro corpo da solicitação (das linhas 8 a 10, os dados têm exatamente 44 bytes). O proxy analisará então as linhas 11 a 14 (em vermelho) como a segunda solicitação do cliente.

Agora vamos ver como o W/S interpreta os dados acima, à medida que são encaminhados do proxy. Ao contrário dos proxies, o W/S usará o primeiro campo Content-Length e o interpretará da seguinte forma: a primeira solicitação não tem corpo e a segunda solicitação começa na linha 8 (observe que o W/S analisará a partir da linha 11 como o valor do campo Bla).

A seguir, vamos ver como a resposta é retornada ao cliente. A solicitação que o W/S entende é “POST /foobar.html” (da linha 1) e “GET /poison.html” (da linha 8), portanto enviará ao cliente 2 respostas com o conteúdo da página foobar. html e veneno.html. O proxy entende que essas 2 respostas correspondem a 2 solicitações: "POST /foobar.html" (da linha 1) e "GET /page_to_poison.html" (linha 11). O proxy armazenará em cache o conteúdo da página Poison.html correspondente à URL “page_to_poison.html” (envenenamento de cache). A partir daí, quando o cliente solicitar "page_to_poison.html" ele receberá o conteúdo da página Poison.html.

4. Ataque baseado no caminho do arquivo

Os servidores Web frequentemente usam seu sistema de arquivos local para gerenciar o mapeamento de nomes de arquivos em URIs para recursos reais no servidor. A maioria dos sistemas de arquivos não foi projetada para proteger contra caminhos de arquivos maliciosos. Portanto, o servidor precisa evitar o acesso a arquivos importantes do sistema.

Por exemplo, UNIX, Microsoft Windows e vários outros sistemas operacionais usam “..” como elemento de caminho para representar um diretório um nível acima do arquivo/diretório atual. Sem o devido controle e autorização de entrada, arquivos/pastas confidenciais do sistema podem ser acessados ​​inserindo caminhos que apontam para esses arquivos/pastas.

5. Tipos de ataques: injeção de comando, injeção de código, injeção de consulta

[Os servidores Web costumam usar parâmetros no URI como entrada para executar comandos do sistema e consultas de banco de dados. No entanto, os dados recebidos na solicitação nem sempre são confiáveis. Um invasor pode criar e modificar componentes na solicitação (como métodos, campos no cabeçalho, corpo...), executar comandos do sistema, consultar o banco de dados...

Por exemplo, SQL Injection é um ataque comum em que o servidor web recebe parâmetros no URI que fazem parte da consulta SQL. Portanto, um invasor pode enganar o servidor web para executar consultas SQL ilegais, a fim de roubar ou sabotar o banco de dados.
Em geral, os dados enviados pelos usuários não devem ser utilizados diretamente para realizar operações no servidor. Esses dados precisam passar por filtros, que definem o que é válido e o que é inválido, eliminando assim dados indesejados.

6. Revelação de informações pessoais

Os clientes geralmente contêm muitas informações pessoais, incluindo informações fornecidas pelo usuário para interagir com o servidor (como nome de usuário, senha, localização, endereço de e-mail, etc.) e informações sobre atividades de navegação na web do usuário (histórico, favoritos, etc.). Ao implementar, deve-se prestar atenção à prevenção de pontos que possam revelar essas informações privadas.

7. Revelando informações confidenciais no URI

Os URIs, por definição, devem ser compartilhados com todos os usuários e não têm garantia de segurança. Os URIs são frequentemente exibidos no código-fonte do site e armazenados em marcadores sem mecanismos de proteção. Portanto, não será seguro se o URI contiver informações confidenciais, informações pessoais, etc.

Evite usar o método GET para enviar informações pessoais ao servidor, pois elas serão exibidas no URI. Use o método POST.

8. Revelando informações de software usadas

Os campos User-Agent, Via, Server no cabeçalho geralmente fornecem informações sobre o software usado pelo remetente. Em teoria, isso permite que os invasores explorem mais facilmente vulnerabilidades conhecidas nesses softwares.

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.