Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
POC-CVE-2023-32681 — CVE-2023-32681 的 POC | Kitploit
工具/GitHubGitHub/hardikmodha/poc-cve-2023-32681
漏洞分析漏洞利用Web安全学习与教育实验室与实践Archived
GitHubhardikmodha/poc-cve-2023-32681

POC-CVE-2023-32681

CVE-2023-32681 的 POC

查看仓库
4123年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2023-32681 的 PoC

这是 CVE-2023-32681 的 Python 3 实现,影响使用 requests 版本 <= 2.30.0 的客户端。

根据 https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4,每当服务器发出 3xx 重定向时,用户代理应修改请求,删除请求中的某些头部和字段。

这些字段的详细信息可参见 https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4-5。针对该 CVE,我在此高亮显示了相关部分。

image

requests 版本 <= 2.30.0 在处理到 "https" 的重定向时没有移除 "Proxy-Authorization" 头部,从而导致代理凭证泄露给了重定向目标服务器。

更多详细信息可参见:

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

前置条件

  • 用于 HTTP(S) 服务器的有效证书集。您可以使用 mkcert 在本地生成证书。
  • Go v1.19
  • Python 3.x
  • virtualenv(可选)

概述

  1. 用 Go 实现的代理服务器。它在端口 8080 启动一个代理服务器,并需要基本认证。为 PoC 目的,代码中硬编码了用户名和密码。
  2. 用 Go 实现的 HTTP(S) 服务器。它启动了两个服务器:
    • 重定向服务器监听端口 443,另一个回声服务器监听端口 4431。
    • 重定向服务器定义了一个路由 /redirect,将流量重定向到运行在 4431 的第二个服务器。
    • 回声服务器定义了一个路由 /echoHeaders。该路由将收到的请求头部返回给客户端。
  3. PoC Python 脚本。它向运行在端口 443 的重定向服务器发出一个经过代理的请求,并打印服务器返回的响应。
  4. 如果响应包含 Proxy-Authorization 头部,则说明 requests 版本存在 "CVE-2023-32681" 漏洞。

步骤

  1. 克隆此仓库。
  2. 更新 server/main.go 中的 certFile 和 keyFile 变量。
  3. 通过运行命令 go run server/main.go 启动 HTTP(S) 服务器。这将启动两个服务器,分别监听端口 443 和 4431。
  4. 通过运行命令 go run proxy/main.go 启动代理服务器。这将启动监听端口 8080 的代理服务器。
  5. 安装运行 Python 脚本所需的依赖:pip3 install -r script/requirements_request_2_30_0.txt
  6. 执行 PoC 脚本:python3 script/poc.py,并观察输出。您会看到服务器在响应中返回了 "Proxy-Authorization" 头部。 服务器也会在日志中打印收到的头部。
  7. 现在,将 requests 版本升级到 >= 2.31.0,或者执行 pip3 install -r script/requirements_request_2_31_0.txt
  8. 再次执行 PoC 脚本:python3 script/poc.py,并观察输出。您会看到 "Proxy-Authorization" 头部现已不再出现在服务器响应中。 同样可以在服务器日志中验证。

截图

代理服务器

代理服务器日志

requests==2.30.0

requests_2_30_0_脚本输出 requests_2_30_0_服务器输出

requests==2.31.0

requests_2_31_0_脚本输出 requests_2_31_0_服务器输出
下载工具