hacktricks/pentesting-web/parameter-pollution.md
2023-06-06 18:56:34 +00:00

5.4 KiB

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Copiado de https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654

Resumo:

A Poluição de Parâmetros HTTP (HPP) significa poluir os parâmetros HTTP de um aplicativo da web para alcançar uma tarefa maliciosa específica. Refere-se a manipular como um site trata os parâmetros que recebe durante as solicitações HTTP. Isso muda o comportamento de um site de seu comportamento pretendido. A poluição de parâmetros HTTP é um tipo simples de ataque, mas é eficaz.

Quando você polui qualquer parâmetro, o código é executado apenas no lado do servidor, que é invisível para nós, mas podemos ver os resultados em nossa tela. O processo intermediário é uma caixa preta.

Por exemplo, há uma URL https://www.anybank.com/send que tem três parâmetros:

  1. de:
  2. para:
  3. quantidade:

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

Agora, esta é uma URL normal que irá proceder a uma transação de 10000 de accountA para accountB, mas e se adicionarmos outro parâmetro igual "from:"

Então, a URL será como https://www.anybank.com/send/?from=accountA&to=accountB&amount=10000&from=accountC

Quando esta URL for processada, uma transação de 10000 será deduzida da contaC em vez da contaA. É assim que você manipula os parâmetros no ataque de Poluição de Parâmetros HTTP. Embora o escopo dessa vulnerabilidade não se limite apenas à solicitação GET, você também pode realizar esse ataque em uma solicitação baseada em POST. Você pode tentar essa vulnerabilidade em muitos lugares, como alteração de senha, 2FA, comentários, upload de foto de perfil, em um parâmetro onde a chave da API é passada, OTP etc.

Quando você manipula qualquer parâmetro, sua manipulação depende de como cada tecnologia da web está analisando seus parâmetros. Você pode identificar tecnologias da web usando o "Wappalyzer". Abaixo está a captura de tela de algumas tecnologias e sua análise de parâmetros. Tecnologias e sua análise de parâmetros

Imagem para postagem

Gostaria de compartilhar uma das minhas descobertas de HPP, onde consegui assumir uma conta usando essa vulnerabilidade.

Como encontrei essa vulnerabilidade?

  1. Fui para uma página de login desse programa, que solicitou um OTP para login

Enviar OTP

Imagem para postagem

  1. Digitei um e-mail e cliquei em "Enviar senha única"

  2. Interrompi a solicitação usando o burp suite e adicionei outro e-mail usando o mesmo parâmetro (criei dois e-mails para fins de teste) Solicitação Burp

Imagem para postagem

  1. Recebi um OTP de shrey……@gmail.com para minha outra conta radhika…..@gmail.com OTP

Imagem para postagem

  1. Copiei o OTP e fui para shrey….@gmail.com na tela de login do programa, digitei este OTP e entrei na conta. Assumir Conta

Imagem para postagem

O que aconteceu aqui é que o aplicativo back-end pegou o valor do primeiro parâmetro "email" para gerar um OTP e usou o valor do segundo parâmetro "email" para fornecer o valor, o que significa que um OTP de shrey….@gmail.com foi enviado para radhika….@gmail.com.

NOTA: Aqui, em uma imagem no 4º passo, onde recebi um OTP para radhika….@gmail.com, fiquei confuso porque a mensagem dizia "Oi Radhika", então pensei que o parâmetro não estava poluído e o OTP era para radhika….@gmail.com, mas quando tentei o OTP em shrey….@gmail.com, funcionou.