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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2023-43804 — 容器化三层实验环境,通过跨源重定向复现 CVE-2023-43804 urllib3 cookie 泄露,包含漏洞利用脚本和补丁验证。 | Kitploit
工具/GitHubGitHub/deepanshu-khurana/cve-2023-43804
防御工具容器安全漏洞分析漏洞利用Web安全渗透测试学习与教育实验室与实践
GitHubdeepanshu-khurana/cve-2023-43804

CVE-2023-43804

容器化三层实验环境,通过跨源重定向复现 CVE-2023-43804 urllib3 cookie 泄露,包含漏洞利用脚本和补丁验证。

查看仓库
4小时34分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2023-43804:urllib3 Cookie 泄露复现与修复实验

该仓库包含一个完全容器化的三层实验环境,旨在演示、利用并验证 CVE-2023-43804(跨源重定向期间发生的 urllib3 Cookie 泄露)的修复方案。


1. 实验环境与架构

该实验使用 Docker Compose 进行编排,由三个通过内部桥接网络通信的隔离服务组成:

  • victim_client:基于 Python 的容器,执行复现与利用脚本(exploit.py)。
  • target_app:Flask Web 应用程序,模拟一个存在漏洞的目标服务器,该服务器会触发指向外部源的 HTTP 302 跨源重定向。
  • attacker_app:Flask 日志记录服务器,旨在捕获传入的 HTTP 请求并提取泄露的头部信息。

2. 先决条件与系统要求

  • 已安装并运行 Docker Desktop。
  • Docker Compose(v2+)。
  • PowerShell 或任何标准命令行 shell。

3. 安装与设置步骤

  1. 克隆仓库并进入项目目录:
    root@kitploit:~
    git clone [https://github.com/deepanshu-khurana/cve-2023-43804-lab.git](https://github.com/deepanshu-khurana/cve-2023-43804-lab.git)
    cd cve-2023-43804-lab
    
    
    
    
  2. 构建并启动容器化实验基础设施:
root@kitploit:~
docker compose up -d --build


4. 如何启动和停止实验

  • 启动实验容器:
root@kitploit:~
docker compose up -d

  • 停止实验并清理资源:
root@kitploit:~
docker compose down --volumes


5. 漏洞概述(CVE-2023-43804)

  • 受影响组件: urllib3
  • 受影响版本: < 1.26.17 或 < 2.0.5
  • 漏洞描述: urllib3 在跨不同源跟随 HTTP 302 重定向时,未能剥离敏感的身份验证头部(例如 Cookie),从而允许不受信任的重定向端点拦截敏感的会话令牌。

6. 如何利用该漏洞(阶段 1)

  1. 确保客户端容器内安装了存在漏洞的 urllib3 版本:
root@kitploit:~
docker exec -it victim_client pip install urllib3==1.26.16

  1. 执行利用脚本:
root@kitploit:~
docker exec -it victim_client python3 -u /lab/exploit.py

  1. 预期的漏洞状态结果:
  • 客户端输出显示 "status": "EXFILTRATED" 以及泄露的会话令牌。
  • docker logs attacker_app 显示捕获到的敏感 cookie 头部。

7. 如何运行检测与验证机制(阶段 2)

在观察到漏洞利用后,验证补丁:

  1. 将客户端容器内的 urllib3 升级到已修补版本:
root@kitploit:~
docker exec -it victim_client pip install urllib3==1.26.17

  1. 重新运行利用脚本:
root@kitploit:~
docker exec -it victim_client python3 -u /lab/exploit.py

  1. 预期的修补后结果:
  • 客户端输出显示 "status": "SECURE", "stolen_cookie": "None / Stripped"。
  • attacker_app 日志确认传入请求包含 Leaked Cookie Header: None。

8. 修复方案

  • 库升级: 更新 requirements.txt 中的依赖项,以强制使用安全版本:
root@kitploit:~
urllib3>=1.26.17

  • 纵深防御: 如果需维护旧版运行时,请在自定义 Retry 配置中通过 remove_headers_on_redirect 显式配置头部管理策略。

9. 故障排除说明

  • 容器命名: 确保准确指定 Docker Compose 分配的容器名称(victim_client、target_app、attacker_app)。使用 docker ps 验证活动容器名称。
  • 端口可用性: 在启动 Docker 堆栈之前,确保端口 5000 和 5001 未被其他本地服务占用。

10. 实验演示与结果

阶段 1:漏洞状态(Cookie 泄露)

在存在漏洞的 urllib3==1.26.16 上运行实验时,敏感的身份验证 cookie 在跨源重定向中被拦截,并被攻击者服务器成功记录。

  • 客户端输出与服务器日志捕获: Vulnerable Execution and Log Capture
    • 图 1.1: exploit.py 显示 "status": "EXFILTRATED" 以及泄露的会话令牌,并由 attacker_app 日志输出验证。

阶段 2:补丁验证(安全状态)

将 urllib3 升级到已修补版本(1.26.17)后,该库会在跨源重定向期间自动剥离敏感的 Cookie 头部。

  • 升级到已修补版本的软件包: Urllib3 Upgrade

    • 图 2.1: 通过 pip install urllib3==1.26.17 在 victim_client 内升级 urllib3。
  • 安全客户端输出与已剥离的日志: Secure Execution and Log Capture

    • 图 2.2: exploit.py 返回 "status": "SECURE" 以及 "stolen_cookie": "None / Stripped",服务器日志显示 Leaked Cookie Header: None 予以确认。
下载工具