u1tr0nex/cve-2026-40072-ssrf-lab
GitHub: u1tr0nex/cve-2026-40072-ssrf-lab
一个用于在本地安全复现并验证 web3.py CVE-2026-40072 SSRF 漏洞的实验教学环境。
Stars: 0 | Forks: 0
# CVE-2026-40072 SSRF 实验环境
实操本地实验环境,用于演示 web3.py 中的 CVE-2026-40072,展示在 Burp Suite 中的 SSRF 影响,并验证官方修复。
## 概述
本仓库包含一个安全、仅限本地的 CVE-2026-40072 概念验证,该漏洞是与 web3.py 中 CCIP Read / OffchainLookup 处理相关的服务端请求伪造(SSRF)问题。该实验环境使用 Kali Linux、Python 虚拟环境、Flask(作为模拟内部服务)以及 Burp Suite 来拦截出站请求。
## 你将学到什么
- 该漏洞在宏观层面上的工作原理。
- 如何在实验环境中安全地重现该请求。
- 如何使用 Burp Suite 拦截并检查请求。
- 如何通过升级 web3.py 来验证官方修复。
## 前置条件
- Kali Linux
- Python 3.13+
- Burp Suite 社区版或专业版
- 需要互联网连接以安装软件包
## 安全提示
此实验环境仅供经授权的、本地的、教育目的使用。请在你自己的隔离环境中运行所有内容。请勿对你不拥有或未经授权评估的系统进行测试。
## 设置
### 1. 创建虚拟环境
```
python3 -m venv ~/ssrf-lab
source ~/ssrf-lab/bin/activate
```
### 2. 安装依赖
```
pip install -r requirements.txt
```
如果 Kali 阻止了系统级的 pip,请继续使用上述的 venv。
## 运行实验环境
### 第一步:启动模拟内部服务
```
source ~/ssrf-lab/bin/activate
python3 lab/fake_internal_server.py
```
保持此终端打开。它模拟了一个敏感的内部 endpoint。
### 第二步:打开 Burp Suite
- 启动 Burp Suite。
- 确保 Proxy listener 正在 `127.0.0.1:8080` 上运行。
- 如果你想捕获请求,请开启 Intercept。
### 第三步:运行 SSRF 演示
```
source ~/ssrf-lab/bin/activate
python3 lab/ssrf_demo.py
```
该请求应出现在 Burp 中,并且模拟服务应返回一个演示凭证字符串。
### 第四步:验证已修复的版本
升级到修复后的版本:
```
pip install "web3==7.15.0"
```
然后确认版本:
```
pip show web3 | grep Version
```
运行检查脚本:
```
python3 lab/ssrf_fixed_check.py
```
你应确认已修复的环境,并记录下 SSRF 请求不再发生。
## 预期结果
- 易受攻击的版本:Burp 捕获出站请求,Flask 记录命中日志,Repeater 显示演示密钥。
- 已修复版本:未出现 SSRF 请求,并附带版本截图记录了该修复。
## 许可证
MIT
标签:Burp Suite, CISA项目, OPA, SSRF, web3.py, 以太坊, 安全, 漏洞复现, 超时处理, 逆向工具, 靶场