安卓应用网络漏洞挖掘技巧
如果无法正常显示,请先停止浏览器的去广告插件。
1. CLICK TO EDIT MASTER TITLE STYLE
2. Android App网络漏洞挖掘技巧
随风而行aa
四川大学网络空间安全学院硕士
3. 目 录
一、安卓应用网络漏洞概述
二、网络漏洞挖掘环境搭建
三、各类网络漏洞的挖掘技巧
四、网络漏洞挖掘的关联思路
4. 一、安卓应用网络漏洞概述
5. 安卓应用网络漏洞概述
梆梆安全《2021年移动安全形势分析与2022年研判》
网络漏洞在Android APP应用中占比也十
分明显,通过抓取APP在与服务器通信过程中
的报文,我们可以实现升级劫持、信息泄露、
登录绕过、权限提升等逻辑漏洞。
6. 二、网络漏洞挖掘环境搭建
7. 安卓应用抓包技术简述
业务层:Hook抓包
应用层:中间人代理抓包
传输层:Socket通信抓包
网络层:网卡抓包
• 根据业务逻辑定位到关键的函数
• 对关键函数API进行Hook,打印相关信息
• 将原有的C/S通信变为两段C/S通信模式
• Fiddler、Charles、BurpSuite等
• App最终都要调用系统的或第三方的库来进行数据传输
• 直接对特定的API进行hook,就可以打印和回溯
• 使用VPN科学代理、网卡路由、wireshark抓包等
• 可以有效的无限制抓包
8. 中间人代理抓包(Http/Https)
1.证书导入(Certificates)
2.绕过双向认证
3.绕过SSLPining(证书绑定)
• Android7.0后系统不再信任用户证书
• 使用mgisk+Certificates模块将证书导入根目录
• 服务端可能也加入了证书校验
• 在Charles/burpsuit导入服务端证书来进行信任
• 代码层面会对证书进行证书绑定校验
• 使用Justme、objection、DroidSSLUnpinging等
Android 设备 + Postern(代理软件) + Fiddler、Charles、Burpsuit
抓包环境的搭建:https://bbs.pediy.com/thread-272270.htm
9. 三、各类网络漏洞的挖掘技巧
10. (1)任意文件下载漏洞
案例1:XX音乐软件
文章网址:https://bbs.pediy.com/thread-271122.htm
11. (2)信息泄露漏洞
案例1:XX软件
12. (3)升级劫持漏洞(未hash校验)
实验工具:XX软件 + HFS(文件服务器)
漏洞分析点:APP应用都有检测新版本的按钮,通过版本更新来进行升级劫持
文章网址:https://bbs.pediy.com/thread-270634.htm
13. (3)升级劫持漏洞(未hash校验)
对Url进行断点
通过HFS文件服务器进行模拟服务器
路径应与apk下载请求url保持一致,域名设置为我们本机的ip地址
并将服务器地址设置为HFS服务器的地址
14. (3)升级劫持漏洞(未hash校验)
最后效果
15. (3)升级劫持漏洞(hash校验)
16. (4)登录绕过漏洞——暴力破解
案例:XX软件
漏洞测试点:验证码登录登录处、忘记密码处、修改密码处等
然后我们可以发现手机验证码是4位验证码,而且对验证码没有严格时间限制,则可以进行暴力破解
文章网址:https://bbs.pediy.com/thread-272270.htm
17. (4)登录绕过漏洞——暴力破解
②
①
③
④
18. (4)登录绕过漏洞——修改响应包
案例:XX软件
19. (4)登录绕过漏洞——修改响应包
第二次登录
①
②
③
20. (5)权限提升漏洞
案例:XX软件
漏洞测试点:登录处
21. (5)权限提升漏洞
更换时间戳
22. 组合漏洞挖掘
23. (1)DeepLinks漏洞
deeplink 是一种在网页中启动App的超链接。当用户点击deeplink链接时,Android系统会启动注册该
deeplink的应用,打开在Manifest文件中注册该deeplink的activity。
deeplink在APP中会导致多类漏洞:通过deeplink操纵WebView造成的远程代码执行、敏感信息泄露、
应用克隆、launchAnyWhere等漏洞。
网络验证不足、弱主机验证:
24. (1)DeepLinks漏洞
构造特定的 URI,来进行任意URI访问
adb shell am start -W -a android.intent.action.VIEW -d URI
URI:
"insecureshop://com.insecureshop/web?url=https://www.baidu.com"
"insecureshop://com.insecureshop/webview?url=http://www.baidu.com?-insecureshopapp.com"
25. (1)DeepLinks漏洞
26. (2)DeepLinks漏洞——Intent重定向
不可导出的组件
WebView2Activity
PrivateActivity
Poc
27. (2)DeepLinks漏洞——Intent重定向
DeepLink实现intent重定向,从而实现launchAnyWhere漏洞
28. (3)DeepLinks漏洞——任意代码执行
29. (4)DeepLinks漏洞——XSS注入
30. (4)路径穿越漏洞
因为Linux系统中../代表向上级目录跳转,攻击者可以通过构造相应的Zip文件,利用多个'../'从而改变
zip包中某个文件的存放位置,费用该替换掉应用原有的文件,完成目录穿越。这样严重可能会导致任
意代码执行漏洞,危害应用用户的设备安全和信息安全。
import zipfile
if __name__ == '__main__':
ZipPath =
'../../../../../data/data/packname/files/libnative
.so'
zp =
zipfile.ZipFile('/root/Desktop/zipAttack/attac
k.zip','w')
zp.write('/root/Desktop/zipAttack/libnative.s
o',ZipPath)
31. (5)网络下组合漏洞
恶意主机
DeepLinks
launchAnyWhere
正常主机
路径穿越
任意代码执行
/XSS
32. 四、漏洞关联挖掘思路
33. 漏洞关联挖掘思路
⚫ 同行业、同类型的APP存在相似漏洞的可能性较大
⚫ 一家公司旗下APP产品的漏洞共存概率较大
⚫ APP的历史版本漏洞在最新版本上的利用
⚫ 利用CNVD、NVD等各类漏洞平台新公布漏洞去快速利用
⚫ 漏洞库组合利用