Android 快速审计导出 Service 流程指南

Android 快速审计导出 Service 流程指南

🧠 新手必读总结:如何快速审计导出 Service?

🔍 第一步:用 jadx 打开 APK,搜索:

搜索关键词用途
android:exported="true"配置文件查看是否允许导出
exec(Runtime.getRuntime()查找命令执行漏洞
deletePackage setComponentEnabledSetting查找敏感系统操作
Binder 子类 + getToken
return SharedPreferences 等敏感方法
查找敏感数据泄露
rawQuery(" 或 SQL 拼接符号查找 SQL 注入
Config.resetAll() System.exit() 等关键业务逻辑查找功能滥用点

🔎 第二步:分析每个 Service 的 onStartCommand/onBind 参数来源

  • 是不是直接用 intent.getStringExtra()
  • 有没有鉴权/白名单逻辑?

✅ 第三步:判断是否涉及敏感操作、状态控制或信息输出

  • 涉及文件操作、命令执行、业务状态重置等都要重点审计!

✅ 防护 checklist(开发 & 审计通用)

检查点建议
是否导出默认应为 false,除非有明确用途
是否使用权限限制使用 android:permission
是否鉴权getCallingUid() + checkCallingPackage()
是否校验参数非空、正则、白名单、类型校验
是否限速记录调用时间,设置冷却时间
是否返回敏感数据Binder、返回值要特别小心

📦 工具推荐

  • jadx-gui:反编译 APK 查看 Service 代码
  • drozer:扫描导出组件 + 模拟调用
  • frida:注入 Hook,动态分析调用行为

© 版权声明
THE END
喜欢就支持一下吧
点赞8赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容