mysara2022/CVE-2025-8671-vulnerability-POC-

GitHub: mysara2022/CVE-2025-8671-vulnerability-POC-

专门检测 HTTP/2 服务器「MadeYouReset」漏洞(CVE-2025-8671)的安全评估工具,通过多种协议违规手法识别存在拒绝服务风险的目标。

Stars: 0 | Forks: 0

# CVE-2025-8671-vulnerability-POC- CVE-2025-8671 漏洞 POC # CVE-2025-8671 漏洞扫描器 一款用于检测 HTTP/2 服务器中 **MadeYouReset** 漏洞 (CVE-2025-8671) 的专业安全研究工具。该扫描器使用多种检测启发式方法来识别容易受到流计数操纵攻击的服务器。 ![Python Version](https://img.shields.io/badge/python-3.7+-blue.svg) ![License](https://img.shields.io/badge/license-MIT-green.svg) ![Maintenance](https://img.shields.io/badge/Maintained%3F-yes-green.svg) ## 🔍 关于 CVE-2025-8671 **MadeYouReset** 漏洞通过发送畸形的协议违规数据包强制服务器发送 `RST_STREAM` 帧,同时后端处理继续进行,从而利用 HTTP/2 流计数机制。这会导致资源耗尽,进而引发: - **拒绝服务** - 服务器资源耗尽 - **后端过载** - 尽管流被重置,处理仍在继续 - **服务降级** - 延迟增加和 5xx 错误 ### 攻击机制 扫描器测试三种主要的攻击原语: 1. **WINDOW_UPDATE 且 increment=0** - 违反 RFC 7540 协议 2. **WINDOW_UPDATE 溢出** - 流控窗口溢出 3. **半关闭流上的 DATA** - 在 END_STREAM 之后发送数据 ## ✨ 特性 - ✅ **多指标检测** - 分析 7 个以上的漏洞信号 - ✅ **低误报率** - 带有置信度的评分系统 - ✅ **批量扫描** - 从文件测试多个域名 - ✅ **迭代测试** - 多次运行测试以确保准确性 - ✅ **详细报告** - 带实时分析的详细模式 - ✅ **彩色输出** - 易于阅读的终端结果 ## 📋 环境要求 - **Python 3.7+** - **h2** 库 (hyper-h2) ## 🚀 安装说明 ### 1. 克隆仓库 ``` git clone https://github.com/mysara2022/CVE-2025-8671-vulnerability-POC-.git cd CVE-2025-8671-vulnerability-POC ``` ### 2. 安装依赖 ``` pip3 install -r requirements.txt ``` 或手动安装: ``` pip3 install h2 ``` ### 3. 赋予执行权限 ``` chmod +x cve-2025-8671-scanner.py--- ## 📝 域名列表格式 Create a `domains.txt` file with one domain per line: ```text # 生产服务器 prod-api.example.com prod-web.example.com # Staging 服务器 staging.example.org # CDN 端点 cdn1.example.net cdn2.example.net ``` - 以 `#` 开头的行视为注释 - 空行将被忽略--- ## 📝 域名列表格式 创建一个 `domains.txt` 文件,每行一个域名: ``` # 生产服务器 prod-api.example.com prod-web.example.com # Staging 服务器 staging.example.org # CDN 端点 cdn1.example.net cdn2.example.net ``` - 以 `#` 开头的行视为注释 - 空行将被忽略--- ## 💻 用法 ### 基本用法 **测试单个域名:** ``` python3 cve-2025-8671-scanner.py example.com ``` **从文件测试多个域名:** ``` python3 cve-2025-8671-scanner.py domains.txt ``` ### 高级选项 ``` python3 cve-2025-8671-scanner.py [options] Options: --verbose Show detailed testing output --runs N Number of test iterations (default: 3) ``` ### 示例 **详细模式单域名扫描:** ``` python3 cve-2025-8671-scanner.py vulnerable-server.com --verbose ``` **5 次迭代的批量扫描:** ``` python3 cve-2025-8671-scanner.py domains.txt --runs 5 ``` **带详细输出的详细分析:** ``` python3 cve-2025-8671-scanner.py target.example.org --verbose --runs 5 ``` - 不需要 `http://` 或 `https://` 前缀 ## 📊 输出解读 ### 漏洞评分 扫描器根据多个指标计算漏洞评分(0-15+): | 评分范围 | 分类 | 置信度 | 建议措施 | |-------------|----------------|------------|-----------------| | **6+** | ✅ 存在漏洞 | 高 | 建议立即修补 | | **4-5** | ⚠️ 极可能存在漏洞 | 中 | 需要进一步调查 | | **2-3** | ❓ 可能存在漏洞 | 低 | 监控并重新测试 | | **0-1** | ❌ 无漏洞 | N/A | 无需操作 | ### 检测指标 扫描器分析以下漏洞信号: 1. **服务器 RST_STREAM 计数** - 服务器发送流重置(关键指标) 2. **HTTP 5xx 错误** - 后端过载症状 3. **延迟增加** - 攻击期间性能下降 4. **未收到 GOAWAY** - 服务器未检测到滥用行为 5. **持续影响** - 测量期间一致的降级 6. **后端不匹配** - RST 后处理仍在继续 7. **控制帧容忍度** - 服务器接受畸形帧 ### 示例输出 ``` ====================================================================== Testing: vulnerable-api.example.com ====================================================================== ✓ vulnerable-api.example.com - VULNERABLE Confidence: HIGH (score: 8.0/max: 9) Indicators: 7.3 avg server RST, 2.0 avg 5xx, no GOAWAY ====================================================================== SCAN SUMMARY ====================================================================== Total tested: 5 Vulnerable: 2 Likely vulnerable: 1 Possibly vulnerable: 0 Not vulnerable: 2 ``` ## 🔧 技术细节 ### 检测方法 1. **基线测量** - 通过 PING 帧建立正常服务器 RTT - 测量 5 个基线样本以确计统计学有效性 2. **攻击阶段** - 打开多达 100 个 HTTP/2 流 - 发送畸形帧以触发协议违规 - 实时监控服务器响应 3. **分析阶段** - 汇总多次测试运行的指标 - 根据 7 个以上的指标计算漏洞评分 - 提供基于置信度的分类 ### 攻击原语 ``` # increment=0 的 WINDOW_UPDATE (违反 RFC 7540) USE_WINDOW_UPDATE_ZERO = True # 导致流控制溢出的 WINDOW_UPDATE USE_WINDOW_OVERFLOW = True # 半关闭流上的 DATA 帧 USE_HALF_CLOSED_DATA = True ``` ### 配置 关键参数(可在源代码中调整): ``` PORT = 443 # Target port TIMEOUT = 6 # Connection timeout TOTAL_STREAMS = 100 # Max streams to open SCAN_TIME_LIMIT = 15 # Max scan duration (seconds) BASELINE_PINGS = 5 # Baseline RTT measurements ``` ## ⚠️ 免责声明 **仅供安全研究和授权测试使用** 本工具旨在用于合法的安全研究和漏洞评估。用户必须: - ✅ 在扫描任何系统之前获得明确授权 - ✅ 遵守所有适用法律和法规 - ✅ 遵循负责任的披露实践 - ❌ 不得用于恶意目的或未经授权的访问 作者不对因滥用本软件或造成的损害承担任何责任。 ## 🔗 参考资料 - **CVE-2025-8671**: [NVD 条目](https://nvd.nist.gov/vuln/detail/CVE-2025-8671) - **RFC 7540**: [HTTP/2 规范](https://tools.ietf.org/html/rfc7540) - **hyper-h2**: [Python HTTP/2 库](https://python-hyper.org/projects/h2/) **⚡ 确保安全,负责任地扫描!**
标签:CVE-2025-8671, DoS, h2库, HTTP/2漏洞, MadeYouReset, POC, Python, RST_STREAM, WINDOW_UPDATE, 加密, 协议异常, 拒绝服务攻击, 插件系统, 无后门, 服务降级, 概念验证, 流控攻击, 漏洞扫描器, 网络安全, 资源耗尽, 逆向工具, 配置错误, 隐私保护