# Poluição de Parâmetros {% hint style="success" %} Aprenda e pratique Hacking na AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprenda e pratique Hacking no GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)! * **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
{% endhint %}
{% embed url="https://websec.nl/" %} # Visão Geral da Poluição de Parâmetros HTTP (HPP) A Poluição de Parâmetros HTTP (HPP) é uma técnica onde atacantes manipulam parâmetros HTTP para alterar o comportamento de uma aplicação web de maneiras não intencionais. Essa manipulação é feita adicionando, modificando ou duplicando parâmetros HTTP. O efeito dessas manipulações não é diretamente visível para o usuário, mas pode alterar significativamente a funcionalidade da aplicação no lado do servidor, com impactos observáveis no lado do cliente. ## Exemplo de Poluição de Parâmetros HTTP (HPP) Uma URL de transação de um aplicativo bancário: - **URL Original:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000` Ao inserir um parâmetro `from` adicional: - **URL Manipulada:** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC` A transação pode ser incorretamente cobrada para `accountC` em vez de `accountA`, demonstrando o potencial da HPP para manipular transações ou outras funcionalidades, como redefinições de senha, configurações de 2FA ou solicitações de chave de API. ### **Análise de Parâmetros Específica da Tecnologia** - A forma como os parâmetros são analisados e priorizados depende da tecnologia web subjacente, afetando como a HPP pode ser explorada. - Ferramentas como [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) ajudam a identificar essas tecnologias e seus comportamentos de análise. ## Exploração de HPP em PHP **Caso de Manipulação de OTP:** - **Contexto:** Um mecanismo de login que requer uma Senha de Uso Único (OTP) foi explorado. - **Método:** Ao interceptar a solicitação de OTP usando ferramentas como Burp Suite, os atacantes duplicaram o parâmetro `email` na solicitação HTTP. - **Resultado:** O OTP, destinado ao email inicial, foi enviado para o segundo endereço de email especificado na solicitação manipulada. Essa falha permitiu acesso não autorizado ao contornar a medida de segurança pretendida. Esse cenário destaca uma falha crítica no backend da aplicação, que processou o primeiro parâmetro `email` para a geração de OTP, mas usou o último para entrega. **Caso de Manipulação de Chave de API:** - **Cenário:** Um aplicativo permite que os usuários atualizem sua chave de API através de uma página de configurações de perfil. - **Vetor de Ataque:** Um atacante descobre que, ao anexar um parâmetro `api_key` adicional à solicitação POST, pode manipular o resultado da função de atualização da chave de API. - **Técnica:** Utilizando uma ferramenta como Burp Suite, o atacante elabora uma solicitação que inclui dois parâmetros `api_key`: um legítimo e um malicioso. O servidor, processando apenas a última ocorrência, atualiza a chave de API para o valor fornecido pelo atacante. - **Resultado:** O atacante ganha controle sobre a funcionalidade da API da vítima, potencialmente acessando ou modificando dados privados de forma não autorizada. Esse exemplo reforça ainda mais a necessidade de um manuseio seguro de parâmetros, especialmente em recursos tão críticos quanto a gestão de chaves de API. ## Análise de Parâmetros: Flask vs. PHP A forma como as tecnologias web lidam com parâmetros HTTP duplicados varia, afetando sua suscetibilidade a ataques HPP: - **Flask:** Adota o primeiro valor de parâmetro encontrado, como `a=1` em uma string de consulta `a=1&a=2`, priorizando a instância inicial em detrimento de duplicatas subsequentes. - **PHP (no Apache HTTP Server):** Por outro lado, prioriza o último valor de parâmetro, optando por `a=2` no exemplo dado. Esse comportamento pode inadvertidamente facilitar explorações de HPP ao honrar o parâmetro manipulado pelo atacante em vez do original. ## Referências * [https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654) * [https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution](https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution)
{% embed url="https://websec.nl/" %} {% hint style="success" %} Aprenda e pratique Hacking na AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ Aprenda e pratique Hacking no GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks * Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)! * **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
{% endhint %}