Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
POC-CVE-2023-32681 — POC para o CVE-2023-32681 | Kitploit
Ferramentas/GitHubGitHub/hardikmodha/poc-cve-2023-32681
Análise de VulnerabilidadesExploraçãoSegurança WebAprendizado e EducaçãoLabs e PráticaArchived
GitHubhardikmodha/poc-cve-2023-32681

POC-CVE-2023-32681

POC para o CVE-2023-32681

Ver Repositório
41há 3 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

POC para CVE-2023-32681

Esta é uma implementação em Python 3 do CVE-2023-32681, que afeta clientes que usam a requests versão <= 2.30.0.

Conforme https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4, sempre que um redirecionamento 3xx for emitido pelo servidor, o user-agent deve modificar a requisição para remover certos cabeçalhos e campos da requisição.

Detalhes desses campos podem ser encontrados em https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4-5. Específico para este CVE, destaquei a parte relevante aqui.

image

A versão requests <= 2.30.0 não removia os cabeçalhos "Proxy-Authorization" ao lidar com o redirecionamento para "https", vazando assim as credenciais do proxy para o servidor redirecionado.

Mais detalhes sobre o mesmo podem ser encontrados em

  • https://www.cve.org/CVERecord?id=CVE-2023-32681
  • https://security.snyk.io/vuln/SNYK-PYTHON-REQUESTS-5595532

Pré-requisitos

  • Conjunto válido de certificados para o servidor HTTP(S). Você pode usar mkcert para gerar os certificados localmente.
  • Go v1.19
  • Python 3.x
  • virtualenv (Opcional)

Visão Geral

  1. Implementação do servidor proxy em Go. Ele inicia um servidor proxy na porta 8080 e requer autenticação básica. Para fins de POC, possui nome de usuário e senha codificados definidos no mesmo arquivo.
  2. Implementação do servidor HTTP(S) em Go. Ele inicia 2 servidores.
    • Servidor de redirecionamento ouvindo na porta 443 e outro servidor echo ouvindo na porta 4431.
    • O servidor de redirecionamento define uma rota /redirect que redireciona o tráfego para o segundo servidor executando na porta 4431.
    • O servidor echo define uma rota /echoHeaders. Esta rota retorna os cabeçalhos recebidos na requisição para o cliente.
  3. Script Python do POC. Ele emite uma requisição via proxy para o servidor de redirecionamento executando na porta 443 e imprime a resposta que o servidor retorna.
  4. Se a resposta contiver os cabeçalhos Proxy-Authorization, então a versão do requests é considerada vulnerável ao "CVE-2023-32681".

Passos

  1. Clone este repositório.
  2. Atualize as variáveis certFile e keyFile no arquivo server/main.go.
  3. Inicie os servidores HTTP(S) executando o comando go run server/main.go. Isso iniciará dois servidores ouvindo nas portas 443 e 4431.
  4. Inicie o servidor proxy executando o comando go run proxy/main.go. Isso iniciará o servidor proxy na porta 8080.
  5. Instale as dependências para executar o script Python pip3 install -r script/requirements_request_2_30_0.txt
  6. Execute o script POC com python3 script/poc.py e observe a saída. Você pode ver que o cabeçalho "Proxy-Authorization" é retornado pelo servidor na resposta. O servidor também imprime os cabeçalhos recebidos nos logs.
  7. Agora, atualize a versão do requests para >= 2.31.0 ou execute pip3 install -r script/requirements_request_2_31_0.txt
  8. Execute novamente o script POC com python3 script/poc.py e observe a saída. Você pode ver que o cabeçalho "Proxy-Authorization" agora não está presente na resposta do servidor. O mesmo pode ser verificado nos logs do servidor.

Capturas de tela

Servidor proxy

proxy_server_logs

requests==2.30.0

requests_2_30_0_script_output requests_2_30_0_server_output

requests==2.31.0

requests_2_31_0_script_output requests_2_31_0_server_output
Baixar ferramenta