【SRC漏洞挖掘系列】第11期:移动端安全(Android/iOS)—— APP 里的“猫腻”大起底

上期回顾 :我们用 GraphQL 把 API 的底裤都扒光了。本期换个阵地------移动端。

别以为 APP 比网页安全,很多 APP 的防护等级,约等于用报纸糊的防盗门。📰


一、APP 逆向:给"黑盒"开天眼

1. 脱壳:撕开 APP 的第一层皮

很多 APP 为了防止被分析,会使用加固(壳)。

  • 常见壳:梆梆、360、爱加密。

  • 脱壳思路:

    • 内存 dump:APP 运行起来后,在内存里把 dex 抠出来。

    • 工具 :Frida + frida-dexdump。

实战场景:

你拿到一个银行 APP,想看看登录逻辑。结果打开是加密的。脱壳后,你看到了明文的 Java 代码,找到了加密密钥。

2. 反编译:读懂程序员的"心里话"

  • 工具 :jadx-gui(神器,直接拖进去就能看源码)。

  • 找什么:

    • 硬编码密钥 :String secretKey = "123456";(低级错误,但极常见)。

    • 测试接口 :https://test-api.bank.com(测试环境通常无防护)。

    • Logcat 日志 :程序员为了调试,把 token、password打印在了日志里。


二、HTTPS 抓包:绕过证书锁定(SSL Pinning)

这是新手挖 APP 漏洞最大的拦路虎:"网络异常,请检查网络设置"。

1. 为什么会抓不到包?

APP 内置了证书锁定(SSL Pinning)。它不相信你的电脑(Burp/Charles)颁发的假证书,只相信服务器真正的证书。

2. 绕过姿势(Android 篇)

方法 操作难度 成功率
JustTrustMe​ 低 (Xposed模块) 60%
Frida Hook​ 中 (脚本注入) **95%**​
Objection​ 低 (一行命令) 90%

Frida 大杀器:

bash 复制代码
# 一行命令绕过大多数 SSL Pinning
objection -g com.example.app explore --startup-command "android sslpinning disable"

结果:APP 乖乖地把 HTTPS 流量送到了你的 Burp Suite 里。🎉

3. iOS 篇

  • 工具 :iossslkill(Frida 脚本)。

  • 操作:注入进程,干掉证书校验函数。


1. 什么是 Deep Link?

APP 注册的自定义协议。

比如:weixin://dl/moments能直接打开朋友圈。

2. 漏洞原理

如果 APP 没有校验 Deep Link 的来源,恶意网页可以偷偷调用 APP 的功能。

Payload:

html 复制代码
<!-- 恶意网页 -->
<a href="bank://transfer?to=hacker&money=10000">点击领红包</a>

结果:用户点击网页链接,自动打开银行 APP 并执行转账(如果 APP 没做二次确认)。


四、WebView 远程代码执行:APP 里的"核弹"

这是 Android 历史上的经典漏洞(CVE-2012-6636)。

1. 漏洞原理

APP 使用了 WebView 加载网页,并且开启了 addJavascriptInterface。

这相当于在网页和 APP 之间开了一扇门,网页里的 JS 可以直接调用 APP 的 Java 代码。

2. 实战案例

Java 代码:

java 复制代码
webView.addJavascriptInterface(new Object(), "JsBridge");

JS 攻击代码:

javascript 复制代码
<script>
    // 调用系统命令
    JsBridge.getClass().forName("java.lang.Runtime").getMethod("exec").invoke(null, "id");
</script>

结果:JS 代码在 APP 里执行了系统命令,直接控制手机。

3. 现在的玩法

现在直接 RCE 很难了,更多是 文件窃取。

利用 file://协议读取 ../databases/user.db(数据库文件),窃取用户登录信息。


五、SRC 实战:从抓包到高危

  1. 抓包:绕过 SSL Pinning,抓取 APP 登录包。

  2. 分析 :发现请求参数里有 sign签名,但签名算法写在了 libnative.so​ (Native层)。

  3. 逆向:用 IDA Pro 打开 so 文件,找到签名算法(其实就是 MD5(password + salt))。

  4. 利用:构造请求,暴力破解 4 位验证码(因为没有次数限制)。

  5. 报告 :提交"任意账号密码暴力破解",评级 高危。


六、互动与思考

💬 互动话题:

各位安卓老司机,你们现在抓包都用 Frida 还是 Xposed?

有没有遇到过那种"加了壳还把密钥写在注释里"的神仙开发?😂


⚠️ 法律红线警示

  1. 严禁对他人的手机 APP 进行逆向分析(除非是官方发布的测试版或开源软件)。

  2. 严禁利用 Deep Link 或 WebView 漏洞攻击真实用户,窃取其隐私数据。

  3. 严禁分发或使用脱壳工具对商业 APP 进行破解、盗版或篡改。

  4. 测试原则:

    • 仅对自己拥有的设备、自己安装的 APP 进行测试。

    • 不要尝试破解支付、登录等核心逻辑。

    • 发现漏洞后,不要下载用户数据库,证明逻辑存在即可。

      **移动端安全关乎每一个用户的隐私,请做一名守护者,而非掠夺者。**​ 🛡️

下一期,我们将进入 "OA系统与通用CMS"------ 打点拿权限的传统艺能"。想知道怎么用泛微 OA 一键 Getshell 吗?敬请期待!💥

相关推荐
2501_932750263 分钟前
Android 自定义 View 入门
android
jimmyleeee1 小时前
大模型安全之三十六:大模型数据管理----从投毒防御到偏见治理的完整框架
人工智能·安全
姜鱼问生1 小时前
三层防火墙排查:Nginx 配好了浏览器还打不开
nginx·安全
终端安全笔记1 小时前
恢复出厂设置清不掉什么:GB 46864 把清除分成三个等级
安全
事圆则缓2 小时前
Android 开启线程的几种方式:Thread、线程池、HandlerThread 与协程
android
Summer-Bright3 小时前
深度 | 谷歌Gemini 4 Argon单次输出100万Token:长输出是智能体刚需,先给防御者不给攻击者才是新玩法
人工智能·安全·ai
hasty3 小时前
接口鉴权通过,对象却属于别人:LimeSurvey 跨问卷授权缺陷解析
安全·系统安全
lisw055 小时前
AI如何助力网络安全合规性?
人工智能·安全·可信计算技术
格鸰爱童话5 小时前
搭建primihub开源框架并一步步理解
安全·ai
mennekes6 小时前
组合工业插座箱:场景复杂难配电?插座箱组合方案更安全
安全·制造