Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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 集成。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

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 技术分析]

快速开始

环境要求

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

5 分钟上手

# 步骤 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

最简单的使用方式

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

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}")

集成到现有系统

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 - 无法确定(需人工复核)

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

# 受影响的应用
⚠️  该应用受 CVE-2025-59489 影响 (Unity 2019.2.6f1)

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

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

项目文件清单

.
├── 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 接口
  • 命令行工具
  • 可嵌入现有系统

使用指南

命令行使用

# 单文件检测
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

批量扫描并生成报告

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)} 个受影响的应用")

集成到审核系统

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 集成

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)

检测原理

检测逻辑流程图

          ┌─────────────────┐
          │   读取 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
下载工具