hacktricks/pentesting-web/parameter-pollution.md

5.5 KiB

Poluição de Parâmetros

Aprenda hacking na AWS do zero ao herói com htARTE (Especialista em Equipe Vermelha AWS do HackTricks)!

Outras maneiras de apoiar o HackTricks:

Visão Geral da Poluição de Parâmetros HTTP (HPP)

A Poluição de Parâmetros HTTP (HPP) é uma técnica de ataque que envolve a manipulação de parâmetros HTTP para alterar o comportamento esperado de uma aplicação web. Esse tipo de ataque é relativamente simples, mas pode ser surpreendentemente eficaz. Embora a manipulação de parâmetros ocorra no lado do servidor e não seja visível para o usuário, as alterações de comportamento resultantes podem ser observadas no lado do cliente.

##Exemplo de Poluição de Parâmetros HTTP (HPP)

Considere uma URL de transação padrão para uma aplicação bancária:

URL: https://www.victim.com/send/?from=accountA&to=accountB&amount=10000

Esta URL inicia uma transação de 10.000 de accountA para accountB. No entanto, introduzir outro parâmetro from assim:

URL Manipulada: https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC

pode resultar na dedução da transação de accountC em vez de accountA. Isso exemplifica como o HPP pode ser usado para manipular parâmetros. Notavelmente, essa vulnerabilidade não se limita a solicitações GET, mas também pode ser explorada em solicitações POST em várias funcionalidades, como alterações de senha, 2FA ou transmissões de chave de API.

É importante reconhecer que a análise de parâmetros depende da tecnologia web específica em uso. Ferramentas como Wappalyzer podem ser usadas para identificar tecnologias web e entender seus comportamentos de análise de parâmetros.

PHP

Um exemplo notável de exploração do HPP envolveu os seguintes passos:

  1. Manipulação de OTP:
  • Uma página de login solicitando um OTP era o alvo.
  • Após enviar uma solicitação de OTP, a solicitação HTTP subsequente foi interceptada usando o Burp Suite.
  • Outro e-mail foi adicionado à solicitação, duplicando efetivamente o parâmetro email.
  • O OTP destinado ao primeiro e-mail foi erroneamente enviado ao segundo e-mail, permitindo o acesso não autorizado à primeira conta.

Este incidente destaca como o backend da aplicação processou os parâmetros email, utilizando o primeiro para geração de OTP e o segundo para entrega de OTP.

Análise de Parâmetros no Flask & PHP

Diferentes tecnologias web analisam parâmetros de forma única. Por exemplo, com uma consulta como a=1&a=2, Flask e PHP interpretarão o parâmetro de forma diferente:

  • Flask: Pega a primeira ocorrência (a=1).
  • PHP (no Servidor HTTP Apache): Pega a última ocorrência (a=2).

Essa diferença no tratamento de parâmetros pode impactar significativamente o comportamento da aplicação e a vulnerabilidade a ataques de HPP. Mais detalhes sobre isso podem ser encontrados neste artigo.

Referências

Aprenda hacking na AWS do zero ao herói com htARTE (Especialista em Equipe Vermelha AWS do HackTricks)!

Outras maneiras de apoiar o HackTricks: