【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 日志 :程序员为了调试,把 tokenpassword打印在了日志里。


二、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 吗?敬请期待!💥

相关推荐
用户38034165882978 分钟前
手写 fMP4 muxer:从 ISO 14496-12 到能播的文件
ios·音视频开发
千里马-horse34 分钟前
第 66 章:在 Android 上运行 Windows 游戏
android·aosp
Bruce_Liuxiaowei2 小时前
数字签名与“公钥制作者之谜“:信任从何而来
网络·安全·web安全
深念Y2 小时前
iOS模拟器在无Metal的NVIDIA显卡环境下的可行性研究报告
服务器·ios·unix·pve·freebsd
2501_915909063 小时前
SwiftUI 和 UIKit 怎么选?两代 UI 框架的适用范围
vscode·ios·objective-c·个人开发·swift·敏捷流程
Black蜡笔小新3 小时前
运维提效!视频汇聚平台EasyCVR视频质量诊断,掉线花屏自动预警
运维·安全·音视频
数据知道4 小时前
哈希与密码存储——bcrypt、Argon2、盐值与彩虹表
网络·算法·安全·网络安全·密码学·哈希算法
sbjdhjd4 小时前
从 assert 动态调用报错到临时文件链路:PHP 5.6 与 7.3 授权靶场中的短 payload 复盘 | (17字符绕过)
安全·网络安全·数据挖掘·开源·云计算·php·字符绕过
sbjdhjd4 小时前
从 7 字符文件名拼接到二维数组取值:PHP 无参函数限制下的受控靶场复盘 | (7字符绕过)
网络·nginx·安全·网络安全·云计算·php·apache
云边有个稻草人4 小时前
飞牛 NAS 远程访问实战:星空组网连接 Mac 与安卓,从 Compose 部署到 5G 验证
android·5g·macos