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

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

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

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

工具目录

分类

查看所有分类
Loading categories
cve-2025-59489 — 自动化扫描器,通过提取 Unity 版本并与已修补版本进行比对,检测 Android APK 中的 Unity 运行时注入漏洞 CVE-2025-59489,支持批处理和 CI/CD 集成。 | Kitploit
工具/GitHubGitHub/taptap/cve-2025-59489
Android安全静态分析漏洞扫描器DevSecOps移动安全
GitHubtaptap/cve-2025-59489

cve-2025-59489

自动化扫描器,通过提取 Unity 版本并与已修补版本进行比对,检测 Android APK 中的 Unity 运行时注入漏洞 CVE-2025-59489,支持批处理和 CI/CD 集成。

查看仓库
152910个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Unity CVE-2025-59489 漏洞检测工具

Android 游戏平台专用的 Unity Runtime 注入漏洞自动化检测工具。

漏洞概述

  • CVE ID: CVE-2025-59489
  • CVSS 评分: 8.4 (High)
  • 影响范围: Unity 2017.1 及以后版本构建的 Android 应用
  • 官方公告: https://unity.com/security/sept-2025-01

漏洞危害详解

危害上限(最坏情况)

一句话总结:攻击者可以完全控制受影响的 Unity 游戏/应用,拿到该应用的所有权限。

Android 平台危害场景

  1. 用户手机上装了一个恶意应用 A
  2. 用户手机上还有一个受影响的 Unity 游戏 B
  3. 恶意应用 A 可以:
    • 冒充游戏 B 执行任意代码
    • 窃取游戏 B 能访问的所有数据(存档、账号信息、照片、通讯录等)
    • 使用游戏 B 的所有权限(摄像头、麦克风、位置、联网等)

关键点:在 Android 上,恶意应用可以劫持 Unity 应用已获得的权限

Windows 平台危害场景

  1. 用户点击一个恶意网页链接
  2. 如果电脑上装了受影响的 Unity 游戏
  3. 攻击者可以:
    • 远程触发游戏加载恶意代码
    • 以游戏的权限执行任意操作
    • 窃取游戏能访问的文件和数据

关键点:在 Windows 上,如果游戏注册了 custom URI handler,点击特制链接即可触发漏洞

具体危害示例

重要限制

好消息:攻击者无法突破应用本身的权限边界

  • ❌ 不能获取 root 权限
  • ❌ 不能访问其他应用的数据(Android 沙箱保护)
  • ❌ 只能以被攻击应用的身份行动

坏消息:很多游戏要求大量权限(摄像头、麦克风、存储、位置等),攻击者可以完全利用这些权限

对游戏平台的影响

作为安卓游戏平台运营方,最糟糕的后果:

  1. 用户隐私泄露 → 平台声誉受损
  2. 大规模账号被盗 → 用户流失
  3. 法律责任 → 未尽到安全审查义务
  4. 经济损失 → 用户索赔、监管处罚

[来源:Unity 官方安全公告、GMO Flatt Security 技术分析]

快速开始

环境要求

root@kitploit:~
# 仅需 Python 3.7+ 标准库,无需额外依赖
python3 --version  # 确认 Python 版本

5 分钟上手

root@kitploit:~
# 步骤 1: 运行测试
python test_demo.py

# 步骤 2: 检测单个 APK
python unity_vulnerability_checker.py your_game.apk

# 步骤 3: 批量检测
python unity_vulnerability_checker.py --batch /path/to/apks

# 步骤 4: 查看使用示例
python usage_examples.py

最简单的使用方式

root@kitploit:~
from unity_vulnerability_checker import check_unity_vulnerability

# 检测单个 APK 文件
result = check_unity_vulnerability("your_game.apk")

# 方式 1: 使用便捷属性
if result.is_vulnerable:
    print(f"⚠️  应用受影响!({result.version})")
    print(f"建议:{result.recommendation}")
elif result.is_safe:
    print(f"✅ 应用安全")
    print(f"原因:{result.message}")
else:
    print(f"❓ 需要人工复核")
    print(f"原因:{result.message}")

# 方式 2: 使用 status 字段
if result.status == "positive":
    print(f"受影响:{result.version}")

批量检测目录下的所有 APK

root@kitploit:~
from unity_vulnerability_checker import batch_check

# 批量扫描一个目录
results = batch_check("/path/to/apk/folder")

# 筛选受影响的应用
vulnerable_apps = [
    (name, result) 
    for name, result in results.items() 
    if result.is_vulnerable
]
print(f"发现 {len(vulnerable_apps)} 个受影响的应用")
for name, result in vulnerable_apps:
    print(f"  - {name}: {result.version}")

集成到现有系统

root@kitploit:~
from unity_vulnerability_checker import UnityVulnerabilityChecker

class MyPlatform:
    """你的游戏平台系统"""

    def __init__(self):
        self.checker = UnityVulnerabilityChecker()

    def check_new_upload(self, apk_path: str) -> bool:
        """检查新上传的 APK,返回是否可以上架"""
        result = self.checker.check_apk(apk_path)

        if result.is_vulnerable:
            # 受影响 - 拒绝上架
            self.notify_developer(
                f"您的应用受 Unity 漏洞影响\n"
                f"版本:{result.version}\n"
                f"建议:{result.recommendation}"
            )
            return False
        elif result.is_safe:
            # 安全 - 批准上架
            return True
        else:
            # 无法确定 - 人工复核
            self.queue_manual_review(apk_path, result.message)
            return False

    def notify_developer(self, message: str):
        """通知开发者(实现你的通知逻辑)"""
        pass

    def queue_manual_review(self, apk_path: str):
        """加入人工复核队列(实现你的逻辑)"""
        pass

检测结果说明

工具返回三种结果类型:

  • positive - 确认受影响(需要更新)
  • negative - 安全(非 Unity 或已修复)
  • inconclusive - 无法确定(需人工复核)

输出示例(单行简洁格式):

root@kitploit:~
# 受影响的应用
⚠️  该应用受 CVE-2025-59489 影响 (Unity 2019.2.6f1)

# 安全的应用(3 种情况)
✅ 该应用安全 - 非 Unity 应用
✅ 该应用安全 - 已使用 Unity patcher 工具修复
✅ 该应用安全 - 已修复版本 (2019.4.41f1)

# 无法确定
❓ 无法确定 - Unity 应用但无法提取版本,可能被加壳或混淆,建议人工复核
⚠️  文件过大无法处理 (1500.0MB,限制 1024MB) - 修改代码第 15 行 MAX_APK_SIZE_MB 为更大值

项目文件清单

root@kitploit:~
.
├── unity_vulnerability_checker.py  # 核心模块
│   ├─ UnityVulnerabilityChecker 类 - 漏洞检测核心引擎
│   ├─ check_unity_vulnerability() - 简化的检测函数
│   ├─ batch_check() - 批量检测功能
│   └─ 完整的版本解析和判定逻辑
│
├── usage_examples.py               # 使用示例
│   ├─ 基础使用示例
│   ├─ 批量检测示例
│   ├─ 平台集成示例
│   ├─ 自动化响应示例
│   └─ Flask API 集成示例
│
├── test_demo.py                    # 测试演示
│   ├─ 版本号解析测试
│   ├─ 版本提取测试
│   ├─ 修复判断测试
│   ├─ APK 扫描场景模拟
│   └─ 性能基准测试
│
├── test_version_detection.py       # 单元测试(33 个测试用例)
│
├── README.md                       # 完整文档(包含快速开始指南)
│
└── CLAUDE.md                       # 开发规范

核心功能

APK 检测

  • 自动识别 Unity 应用
  • 提取 Unity 版本号
  • 判断是否受 CVE-2025-59489 影响
  • 返回三种检测结果:positive(受影响)、negative(安全)、inconclusive(需人工复核)

批量处理

  • 支持目录批量扫描
  • 生成统计报告
  • 适合大规模应用审核

易于集成

  • 简洁的 API 接口
  • 命令行工具
  • 可嵌入现有系统

使用指南

命令行使用

root@kitploit:~
# 单文件检测
python unity_vulnerability_checker.py game.apk

# 详细日志模式
python unity_vulnerability_checker.py game.apk -v

# 批量检测目录
python unity_vulnerability_checker.py --batch /path/to/apk/folder

# 批量检测(详细模式)
python unity_vulnerability_checker.py --batch /path/to/apk/folder -v

批量扫描并生成报告

root@kitploit:~
from unity_vulnerability_checker import batch_check

results = batch_check("/path/to/apk/directory", verbose=True)

# 筛选受影响的应用
vulnerable = {name: result for name, result in results.items()
              if result.is_vulnerable}

print(f"发现 {len(vulnerable)} 个受影响的应用")

集成到审核系统

root@kitploit:~
from unity_vulnerability_checker import UnityVulnerabilityChecker

class AppReviewSystem:
    def __init__(self):
        self.checker = UnityVulnerabilityChecker(verbose=False)

    def review_upload(self, apk_path: str) -> str:
        result = self.checker.check_apk(apk_path)

        if result.is_vulnerable:
            return "REJECT"  # 拒绝上架
        elif result.is_safe:
            return "APPROVE"  # 批准
        else:
            return "MANUAL_REVIEW"  # 人工复核

reviewer = AppReviewSystem()
decision = reviewer.review_upload("new_game.apk")

Flask API 集成

root@kitploit:~
from flask import Flask, request, jsonify
from unity_vulnerability_checker import check_unity_vulnerability

app = Flask(__name__)

@app.route('/api/scan', methods=['POST'])
def scan_apk():
    file = request.files['file']
    temp_path = f"/tmp/{file.filename}"
    file.save(temp_path)

    result = check_unity_vulnerability(temp_path)

    # 使用 to_dict() 方法直接转换为 JSON
    response = result.to_dict()
    response["filename"] = file.filename
    response["vulnerable"] = result.is_vulnerable
    
    return jsonify(response)

检测原理

检测逻辑流程图

root@kitploit:~
          ┌─────────────────┐
          │   读取 APK 文件   │
          └────────┬─────────┘
                   │
                   ▼
          ┌─────────────────┐
          │ 是否为 Unity 应用? │──NO──> negative
          └────────┬─────────┘
                   │ YES
                   ▼
          ┌─────────────────────┐
          │ 检测到 patcher 补丁? │──YES──> negative
          └────────┬─────────────┘
                   │ NO
                   ▼
          ┌─────────────────┐
          │ 提取 Unity 版本  │──失败──> inconclusive
          └────────┬─────────┘
                   │ 成功
                   ▼
          ┌─────────────────┐
          │ 版本 < 2017.1 ?  │──YES──> negative
          └────────┬─────────┘
                   │ NO
                   ▼
          ┌─────────────────┐
          │  版本已修复?     │──YES──> negative
          └────────┬─────────┘
                   │ NO
                   ▼
               positive

1. Unity 应用识别

检测 APK 中是否存在以下特征:

  • lib/*/libunity.so - Unity 运行时库
  • assets/bin/Data/* - Unity 资源文件

2. 版本提取

从以下位置提取 Unity 版本号:

  • libunity.so - 二进制库中的版本字符串
  • globalgamemanagers - Unity 数据文件
  • data.unity3d - 打包的资源文件

支持的版本号格式:

  • 标准格式:2019.4.40f1, 2022.3.15f1
  • 新格式:6000.0.23f1, 6000.2.6f2
  • 无后缀:2019.4.40, 6000.0.23

3. 漏洞判定

基于 Unity 官方安全公告的规则:

  1. Unity 2017.1 之前 → 安全
  2. 已修复版本 → 安全
  3. Unity 2017.1–2018.4 → 无法确定(Unity 官方未提供补丁)
  4. Unity 2019.1+ 未修复 → 受影响(有补丁可用)

修复版本对照表

实际应用场景

场景 1: 应用商店审核

在应用上架前自动扫描,拒绝受影响的应用上架

root@kitploit:~
from unity_vulnerability_checker import check_unity_vulnerability

def pre_publish_check(apk_path):
    result = check_unity_vulnerability(apk_path)
    if result.is_vulnerable:
        return {
            "approved": False, 
            "reason": f"CVE-2025-59489 vulnerability detected ({result.version})",
            "recommendation": result.recommendation
        }
    return {"approved": True, "message": result.message}

场景 2: 存量应用扫描

批量扫描现有应用库,识别需要更新的应用

root@kitploit:~
python unity_vulnerability_checker.py --batch /data/published_apps > scan_report.txt

场景 3: 自动化监控

每日定时扫描新上传应用,自动通知开发者

root@kitploit:~
import schedule
from unity_vulnerability_checker import batch_check

def daily_scan():
    results = batch_check("/data/new_uploads")
    vulnerable = [(name, result) for name, result in results.items() if result.is_vulnerable]
    if vulnerable:
        # 发送通知,包含详细信息
        for name, result in vulnerable:
            send_notification(name, result.version, result.message)

schedule.every().day.at("02:00").do(daily_scan)

场景 4: 安全报告生成

生成平台安全报告,统计漏洞分布情况

root@kitploit:~
from unity_vulnerability_checker import batch_check
import json

results = batch_check("/data/all_apps")
report = {
    "total": len(results),
    "vulnerable": sum(1 for r in results.values() if r.is_vulnerable),
    "safe": sum(1 for r in results.values() if r.is_safe),
    "unclear": sum(1 for r in results.values() if r.is_uncertain),
    # 详细列表
    "vulnerable_apps": [
        {"name": name, "version": r.version, "message": r.message}
        for name, r in results.items() if r.is_vulnerable
    ]
}

with open("security_report.json", "w") as f:
    json.dump(report, f, indent=2)

场景 5: CI/CD 集成

集成到持续集成流程,自动化安全检查

root@kitploit:~
#!/bin/bash
# 在 CI pipeline 中使用

python unity_vulnerability_checker.py build/output.apk
result=$(python unity_vulnerability_checker.py build/output.apk | grep "检测结果")

if echo "$result" | grep -q "positive"; then
    echo "Security check failed: CVE-2025-59489 detected"
    exit 1
fi

echo "Security check passed"

性能指标

  • 单文件检测: 0.5 - 2 秒(取决于 APK 大小)
  • 版本解析: < 0.01 毫秒(内存操作)
  • 批量扫描: 支持并行处理(可配置进程数)
  • 内存占用: < 100 MB(单次检测)

注意事项

假阳性/假阴性

可能误判为安全的情况:

  • APK 经过混淆或加壳处理
  • 版本信息被修改或移除
  • 使用非标准构建流程

可能误判为受影响的情况:

  • 版本号格式异常但实际已修复
  • 提取到错误的版本字符串

使用建议

  1. 人工复核:对于 inconclusive 结果,建议人工复核
  2. 组合检测:结合其他安全扫描工具使用
  3. 持续更新:关注 Unity 官方更新的修复版本列表
  4. 不能替代人工安全审计:本工具仅作为自动化初筛手段

常见问题

为什么会返回 "inconclusive"?

可能原因:

  • APK 经过加壳或混淆
  • 版本信息被移除
  • 文件损坏
  • Unity 2017.1-2018.4 版本(无官方补丁)

建议:对这类应用进行人工复核

Unity 2017/2018 版本为什么返回 "inconclusive"?

Unity 官方未为 2017.1-2018.4 版本提供安全补丁。这些版本确实存在漏洞,但由于:

  • Unity 已停止支持这些版本
  • 没有官方修复版本可供升级
  • 开发者无法通过简单更新解决

因此返回 "inconclusive" 而非 "positive",建议:

  1. 与开发者沟通升级到 Unity 2019.1+ 并重新构建
  2. 使用 Unity 官方提供的缓解工具作为临时方案
  3. 评估风险后决定是否下架或给予宽限期

检测准确率如何?

基于 Unity 官方公告的规则,对标准构建的 APK 准确率 > 95%。混淆或加壳的 APK 可能需要额外处理。

性能如何?

单个 APK 检测通常在 0.5-2 秒内完成,支持并行批量处理以提高效率。详细性能指标见本文档"性能指标"章节。

可以检测 iOS 应用吗?

当前版本专注于 Android APK。iOS .ipa 文件检测需要额外适配。

如何更新修复版本列表?

修改 unity_vulnerability_checker.py 中的 PATCHED_VERSIONS 字典,关注 Unity 官方公告获取最新信息。

安全建议

平台方

  1. 立即行动

    • 下架受影响应用或限制下载
    • 通知开发者尽快更新
  2. 持续监控

    • 建立每日自动扫描机制
    • 监控新上传的应用
  3. 用户通知

    • 向已安装用户推送更新提示
    • 提供漏洞说明和修复指引

开发者

  1. 升级 Unity 版本

    • 更新到最新的修复版本
    • 重新编译并发布应用
  2. 临时方案(无法升级时)

    • 使用 Unity Application Patcher
    • 替换受影响的运行时库
  3. 验证修复

    • 使用本工具验证新版本
    • 确认不再报告为 positive

相关链接

  • Unity 官方公告: https://unity.com/security/sept-2025-01
  • 修复工具下载: https://unity.com/security/sept-2025-01/remediation
  • CVE 详情: https://nvd.nist.gov/vuln/detail/CVE-2025-59489
  • 技术分析 (GMO Flatt Security): https://flatt.tech/research/posts/arbitrary-code-execution-in-unity-runtime/

技术支持

遇到问题?

  1. 查看本文档的详细说明
  2. 运行 test_demo.py 验证工具正常工作
  3. 查看 usage_examples.py 寻找类似场景
  4. 联系 Unity 官方获取最新信息

开发指南

环境配置

项目已配置完整的代码质量检查工具:

root@kitploit:~
# 安装依赖
pip install ruff pre-commit

# 安装 pre-commit hooks
pre-commit install

# 手动运行所有检查
pre-commit run --all-files

代码质量标准

所有提交前会自动运行以下检查:

  1. Ruff Linter - Python 代码静态分析

    • 检查代码风格(PEP 8)
    • 检测潜在错误
    • 自动修复常见问题
  2. Ruff Formatter - Python 代码格式化

    • 统一代码格式
    • 88 字符行长度限制
  3. 通用文件检查

    • 清除行尾空格
    • 文件末尾换行
    • YAML/TOML 格式验证
    • 检测大文件(>1MB)
    • 检测合并冲突标记
  4. Markdown 格式检查

    • 自动修复格式问题
    • 检查代码块语言标识

配置文件

  • ruff.toml - Ruff 配置
  • .pre-commit-config.yaml - Pre-commit hooks 配置

提交前检查

所有代码在提交前必须通过 ruff 检查。如果检查失败,提交会被阻止。

root@kitploit:~
# 如果 pre-commit 失败,会自动修复部分问题
# 修复后需要重新 git add 并提交
git add .
git commit -m "your message"

手动运行检查

root@kitploit:~
# 只检查 Python 文件
ruff check *.py

# 自动修复问题
ruff check --fix *.py

# 格式化代码
ruff format *.py

更新日志

v1.2.0 (2025-10-13)

  • 新增 Unity Patcher 补丁检测功能
  • 输出信息优化

v1.1.0 (2025-10-11)

  • 修复版本判定逻辑错误(major >= 2019 or major >= 6000)
  • 支持 beta/alpha 版本号解析和比较
  • 更严格的 Unity 应用识别规则
  • 添加文件大小验证(500MB 限制)
  • 实现并行批量处理
  • 改用标准 logging 模块
  • 改用 argparse 解析命令行参数
  • 提取魔法数字为常量
  • 配置 pre-commit hooks 和 ruff linter
  • 所有代码通过 ruff 质量检查

v1.0.0 (2025-10-11)

  • 初始版本发布
  • 支持 Unity 2017.1 - 6000.x 版本检测
  • 支持批量扫描功能
  • 命令行界面
  • 基于 Unity CVE-2025-59489 官方公告

许可证

本工具仅供安全审计和合规检查使用。

下载工具
如果游戏有这个权限攻击者就能
📸 摄像头偷拍你
🎤 麦克风偷听你
📍 位置追踪你
📱 联系人窃取你的通讯录
💾 存储读取/删除你的文件
💰 支付盗刷游戏内支付
🔐 账号窃取游戏账号
Unity 版本最低修复版本状态
6000.36000.3.0b4✅ 有补丁
6000.26000.2.6f2✅ 有补丁
6000.0 LTS6000.0.58f2✅ 有补丁
2022.32022.3.62f2✅ 有补丁
2021.32021.3.45f2✅ 有补丁
2020.x2020.1.18f1+✅ 有补丁
2019.x2019.1.15f1+✅ 有补丁
2017-2018N/A⚠️ 无官方补丁,建议升级版本