Skip to content

wzqvip/FnOS-exploit

Repository files navigation

FnOS Token伪造漏洞研究

FnOS 1.1.8 系统的Token伪造漏洞完整分析、演示和防御指南

⚠️ AI声明

本项目的所有文档、脚本和分析内容由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)


🚀 快速开始

5分钟快速了解

# 1. 阅读总结文档 (2分钟)
cat TOKEN_FORGERY_SUMMARY.md

# 2. 运行演示脚本 (2分钟)
python token_forgery_tutorial.py

# 3. 查看结果
# 脚本会自动:
# - 获取RSA私钥
# - 提取AES密钥
# - 生成伪造Token
# - 演示登录过程

15分钟上手操作

# 按照快速指南步骤操作
cat TOKEN_QUICK_START.md

1小时深入学习

# 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分钟

🔧 脚本说明

token_forgery_exploit.py - 完整实战脚本

自动化的全流程攻击演示脚本,目标为 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
  • 完整的攻击报告
  • 防御建议

🔑 核心知识点

1️⃣ 漏洞链的4个关键步骤

路径穿越 ──→ 获取RSA私钥
        ↓
硬编码密钥 ──→ 提取AES主密钥
        ↓
认证绕过 ──→ 伪造管理员Token
        ↓
命令注入 ──→ 远程代码执行 (RCE)

2️⃣ 为什么易受攻击

✗ 密钥硬编码      → 所有实例使用同一密钥
✗ 无签名验证      → 伪造无法检测
✗ 无过期检查      → Token永久有效
✗ 路径穿越未过滤  → 密钥容易获取
✗ 权限为root      → 获得完全控制

3️⃣ 技术亮点

  • 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 pycryptodome

📖 学习路径建议

初级: 理解概念 (5分钟)

cat TOKEN_FORGERY_SUMMARY.md
python token_forgery_tutorial.py

中级: 深入技术 (45分钟)

cat TOKEN_FORGERY_GUIDE.md
cat TOKEN_FORGERY_FLOWCHART.md

高级: 实战操作 (30分钟)

cat TOKEN_QUICK_START.md
# 按步骤手动操作

专家: 防御加固 (30分钟)

# 查看各文档的防御建议部分
grep -i "防御\|防护\|修复" TOKEN_FORGERY*.md

🎓 相关资源

加密相关

认证相关

漏洞相关


❓ 常见问题

Q: 为什么密钥在偏移量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日

About

FnOS 漏洞利用 - 提权分析

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages