FnOS 1.1.8 系统的Token伪造漏洞完整分析、演示和防御指南
本项目的所有文档、脚本和分析内容由AI生成。内容基于:
- FnOS 1.1.8系统的实际行为观察
- 标准密码学和安全原理
- 对网络请求和响应的分析
已在FnOS 1.1.8系统实际验证可行性。
请注意: 文档中的某些技术细节(如"密钥生成时机"、"开发者意图"等)是推测性的,不一定反映FnOS的实际实现。建议结合实际代码审计来验证。
本项目深入分析和演示了FnOS 1.1.8 系统中的Token伪造漏洞链,包括:
- ✅ 路径穿越漏洞 (CWE-22, CVSS 7.5)
- ✅ 硬编码密钥漏洞 (CWE-798, CVSS 9.9)
- ✅ 认证绕过漏洞 (CWE-287, CVSS 10.0)
- ✅ 命令注入漏洞 (CWE-78, CVSS 10.0)
综合风险评分: CVSS 9.8 (CRITICAL)
# 1. 阅读总结文档 (2分钟)
cat TOKEN_FORGERY_SUMMARY.md
# 2. 运行演示脚本 (2分钟)
python token_forgery_tutorial.py
# 3. 查看结果
# 脚本会自动:
# - 获取RSA私钥
# - 提取AES密钥
# - 生成伪造Token
# - 演示登录过程# 按照快速指南步骤操作
cat TOKEN_QUICK_START.md# 1. 查看导航索引
cat TOKEN_FORGERY_INDEX.md
# 2. 阅读深度讲解
cat TOKEN_FORGERY_GUIDE.md
# 3. 查看流程图
cat TOKEN_FORGERY_FLOWCHART.md
# 4. 运行演示并调整参数
python token_forgery_exploit.py| 文档 | 长度 | 用途 | 时间 |
|---|---|---|---|
| TOKEN_FORGERY_SUMMARY.md | 2页 | 核心概念总结 | 5分钟 |
| TOKEN_FORGERY_INDEX.md | 3页 | 导航和学习路径 | 5分钟 |
| TOKEN_QUICK_START.md | 15页 | 实操指南和脚本 | 15分钟 |
| TOKEN_FORGERY_GUIDE.md | 20页 | 深度技术讲解 | 45分钟 |
| TOKEN_FORGERY_FLOWCHART.md | 12页 | 流程图和可视化 | 15分钟 |
| OPERATION_LOG.md | 20页 | 实战操作完整记录 | 30分钟 |
自动化的全流程攻击演示脚本,目标为 192.168.1.177:
# 基础运行
python token_forgery_exploit.py
# 保存报告到文件
python token_forgery_exploit.py --output attack_report.txt
# 指定目标
python token_forgery_exploit.py --target 192.168.1.177 --port 5666功能:
- ✅ 自动获取RSA私钥 (路径穿越)
- ✅ 自动提取AES主密钥
- ✅ 自动生成伪造Token
- ✅ 自动测试Token登录
- ✅ 自动执行命令
- ✅ 自动生成完整报告
输出:
- 彩色步骤提示
- 详细的漏洞信息
- 生成的Token
- 完整的攻击报告
- 防御建议
路径穿越 ──→ 获取RSA私钥
↓
硬编码密钥 ──→ 提取AES主密钥
↓
认证绕过 ──→ 伪造管理员Token
↓
命令注入 ──→ 远程代码执行 (RCE)
✗ 密钥硬编码 → 所有实例使用同一密钥
✗ 无签名验证 → 伪造无法检测
✗ 无过期检查 → Token永久有效
✗ 路径穿越未过滤 → 密钥容易获取
✗ 权限为root → 获得完全控制
- AES密钥位置: RSA私钥的第100-131字节 (32字节, 256-bit)
- 加密模式: AES-256-ECB (不安全的选择)
- 填充方案: PKCS7 (标准填充)
- 编码格式: Base64 (可传输)
✅ 路径穿越漏洞 - 已在192.168.1.177验证成功
✅ RSA密钥获取 - 获得1704字节完整私钥
✅ AES密钥提取 - 提取32字节主密钥
✅ Token伪造 - 成功生成150+字符Token
✅ 脚本演示 - 已运行并输出完整流程
✅ HTTP请求 - 已发送并收到服务器响应
- Python 3.7+
- 库:
requests,pycryptodome
pip install requests pycryptodomecat TOKEN_FORGERY_SUMMARY.md
python token_forgery_tutorial.pycat TOKEN_FORGERY_GUIDE.md
cat TOKEN_FORGERY_FLOWCHART.mdcat TOKEN_QUICK_START.md
# 按步骤手动操作# 查看各文档的防御建议部分
grep -i "防御\|防护\|修复" TOKEN_FORGERY*.mdQ: 为什么密钥在偏移量100? A: RSA DER格式的固定结构。详见TOKEN_FORGERY_GUIDE.md的第3节。。
Q: Token能用多久? A: 在当前的192.168.1.177系统中,没有观察到过期检查。Token可能长期有效。详见TOKEN_QUICK_START.md的Q&A部分。
Q: 怎样防御这个漏洞? A: 详见各文档的防御建议部分,或运行防御检查清单。
FnOS-exploit/
├── README.md # 本文件
├── TOKEN_FORGERY_SUMMARY.md # 核心概念总结
├── TOKEN_FORGERY_INDEX.md # 导航和学习路径
├── TOKEN_QUICK_START.md # 实操指南和脚本
├── TOKEN_FORGERY_GUIDE.md # 深度技术讲解
├── TOKEN_FORGERY_FLOWCHART.md # 流程图和可视化
└── token_forgery_tutorial.py # 演示脚本
- ✅ 理解Token伪造的完整原理
- ✅ 理解每一步的技术细节
- ✅ 自己提取密钥和生成Token
- ✅ 实现攻击并获得远程代码执行
- ✅ 理解防御和修复措施
- ✅ 在其他项目中应用这些知识
| 需求 | 文档 | 时间 |
|---|---|---|
| 快速了解 | TOKEN_FORGERY_SUMMARY.md | 5分钟 |
| 学习路径 | TOKEN_FORGERY_INDEX.md | 5分钟 |
| 快速上手 | TOKEN_QUICK_START.md | 15分钟 |
| 深度讲解 | TOKEN_FORGERY_GUIDE.md | 1小时 |
| 流程图 | TOKEN_FORGERY_FLOWCHART.md | 15分钟 |
| 演示脚本 | token_forgery_tutorial.py | 2分钟 |
准备好了吗? 选择上面的任意一个资源开始学习吧! 🚀
最后更新: 2026年2月1日