DroidGround
在传统的 CTF 挑战中,通常会将 flag 隐藏在系统文件中,要求攻击者利用漏洞来获取它们。然而,在 Android 世界中,这种方法效果不佳。APK 文件很容易被下载和逆向,因此将 flag 放在设备上通常使其变得轻而易举,可以通过静态分析或模拟器技巧来提取。这严重限制了创建逼真的、以运行时为重点的挑战的能力。
DroidGround 正是为解决这个问题而设计的。
它是一个定制构建的平台,用于在受控且逼真的环境中托管 Android 移动黑客挑战,其中攻击者受到恰到好处的限制,从而必须以预期的方式解决挑战。
重要的是,参与者可能被限制在应用环境内。该工具的模块化设计允许设置用户是否可以生成 shell、读取任意文件或侧载工具。一切都可以设置成只有通过理解和利用应用本身才能获取 flag。
DroidGround 支持各种在传统 CTF 设置中难以实现的 Android 挑战。例如,在远程代码执行(RCE)挑战中,玩家可能会收到一个 APK 用于本地分析。在发现漏洞后,他们可以开发一个 Frida 脚本,并通过 DroidGround 在真实目标设备上运行它,以从内部存储中提取 flag。其他挑战类型可能涉及隐藏的 activity、自定义广播 intent、service 利用,或使用预加载工具进行动态分析。
借助实时设备流式传输、对功能的细粒度控制、Frida 集成以及可定制的设置和重置脚本,DroidGround 使 CTF 组织者能够构建安全、灵活且逼真的 Android 挑战,远远超出通常所能实现的范围。
DroidGround 提供了一套丰富的服务器控制功能。
scrcpy),可选鼠标、触摸和键盘控制几乎所有功能都是模块化的,并通过环境变量定义,确保对挑战范围进行精确控制。
![]() | ![]() |
|---|---|
| 概述 | 启动 Activity |
![]() | ![]() |
| Frida 受限模式 | Frida 完整模式 |
![]() | ![]() |
| 文件浏览器 | 应用管理器 |
![]() | ![]() |
| 终端 | 日志 |
根目录中的 .env.sample 文件是一个很好的起点。以下是当前支持的所有环境变量的完整列表: