【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 大杀器:
# 一行命令绕过大多数 SSL Pinning objection -g com.example.app explore --startup-command "android sslpinning disable"结果:APP 乖乖地把 HTTPS 流量送到了你的 Burp Suite 里。🎉
3. iOS 篇
工具:
iossslkill(Frida 脚本)。操作:注入进程,干掉证书校验函数。
三、Deep Link 劫持:拦截“神秘链接”
1. 什么是 Deep Link?
APP 注册的自定义协议。
比如:weixin://dl/moments能直接打开朋友圈。
2. 漏洞原理
如果 APP 没有校验 Deep Link 的来源,恶意网页可以偷偷调用 APP 的功能。
Payload:
<!-- 恶意网页 --> <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 代码:
webView.addJavascriptInterface(new Object(), "JsBridge");JS 攻击代码:
<script> // 调用系统命令 JsBridge.getClass().forName("java.lang.Runtime").getMethod("exec").invoke(null, "id"); </script>结果:JS 代码在 APP 里执行了系统命令,直接控制手机。
3. 现在的玩法
现在直接 RCE 很难了,更多是文件窃取。
利用file://协议读取../databases/user.db(数据库文件),窃取用户登录信息。
五、SRC 实战:从抓包到高危
抓包:绕过 SSL Pinning,抓取 APP 登录包。
分析:发现请求参数里有
sign签名,但签名算法写在了libnative.so (Native层)。逆向:用 IDA Pro 打开 so 文件,找到签名算法(其实就是 MD5(password + salt))。
利用:构造请求,暴力破解 4 位验证码(因为没有次数限制)。
报告:提交“任意账号密码暴力破解”,评级高危。
六、互动与思考
💬 互动话题:
各位安卓老司机,你们现在抓包都用 Frida 还是 Xposed?
有没有遇到过那种“加了壳还把密钥写在注释里”的神仙开发?😂
⚠️ 法律红线警示
严禁对他人的手机 APP 进行逆向分析(除非是官方发布的测试版或开源软件)。
严禁利用 Deep Link 或 WebView 漏洞攻击真实用户,窃取其隐私数据。
严禁分发或使用脱壳工具对商业 APP 进行破解、盗版或篡改。
测试原则:
仅对自己拥有的设备、自己安装的 APP 进行测试。
不要尝试破解支付、登录等核心逻辑。
发现漏洞后,不要下载用户数据库,证明逻辑存在即可。
移动端安全关乎每一个用户的隐私,请做一名守护者,而非掠夺者。 🛡️
下一期,我们将进入“OA系统与通用CMS”—— 打点拿权限的传统艺能”。想知道怎么用泛微 OA 一键 Getshell 吗?敬请期待!💥
