如有错误,各位大佬帮忙在评论区指正,感谢~~~
需求
抓安卓手机的一个app的数据包分析
抓包app数据包
1-一般手机抓包用小黄鸟canary,给手机安装证书后即可抓取网页数据包
问题一:如果抓app的话,有的app有防抓包检测,何解?
单向认证的APP
单向认证和双向认证
•单向验证的情况是客户端校验证书,校验出错就无法访问•双向认证的情况是客户端校验证书的时候,服务端也要校验证书,有一端证书校验失败都无法访问数据。缺点是服务器的压力比较大
处理方法
一般是使用 JustTrustMe
原理是通过 Xpose Hook 校验的 API
APP不走代理
如何确定 APP 不走代理?
•关闭代理服务器(fiddler等代理抓包工具)•使用手机访问浏览器网页访问失败,确定代理失效•使用APP访问,正常访问确定 APP 不走代理访问网络
处理方法
•更换不基于代理类型的抓包工具(HTTP Analyzer V7–缺点没办法用在真机、HTTP Debug Pro、手机端的HttpCanary-基于VPN)•hook - 先反编译看看他是使用了那个框架,然后针对性的hook – 菜鸡劝退•iptables 强制拦截转发
代理检测的APP
挂上代理之前APP访问正常,挂上代理之后APP无法使用显示网络出错等情况
•代理检测(hook 代理检测的方法)•证书检测(用 JustTrustMe )
双向认证的APP
双向认证的情况是客户端校验证书的时候,服务端也要校验证书,有一端证书校验失败都无法访问数据。
不过在双向认证的APP中要做到双向验证,在APP中一般要配置好服务器端验证的证书,所以在客户端中我们可以找到一个服务端的证书,我们只要在 Fiddler 中配置好这个证书就可以请求了。
ps:证书一般带有密码,需要反编译找到密码,之后导入至系统当中,再从系统中导出为 .cer 证书格式,之后在 FiddlerScript 中配置即可。
这里的xp框架等都需要root,何解?
使用电脑版的安装模拟器,如雷电,夜神等,自带root功能。
问题二:fiddle抓包模拟器内的应用
模拟器的wifi代理与端口都设置好了,证书也安装了?为什么抓不到包?
这里的模拟器就是模拟一个安卓手机,你自己的手机也能通过此方法抓包。
因为你使用的是安卓7.0以上的版本,安卓7.0及以上系统对于证书的安全策略做了修改,用户证书只能用于代理浏览器的流量,而应用是不会信任这些证书。【ios和安卓<7.0的版本没有此问题】
解决方案:
1、root手机将证书导入到根证书目录下(百度)
2、换低版本安卓系统
问题三:小黄鸟能抓应用,为什么fiddler不行?
两者抓的原理不同,小黄鸟是vpn,fiddler是中间人,wireshark是网卡。
如何抓包电脑客户端
C/S程序抓包需要借助Proxifer
Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链。
由于一般的C/S客户端不能设置代理,所以我们FIddler检测不到数据,我们可以通过Proxifer来实现把所有的请求抓发给Fiddler,这样我们就可以在Fiddler分析客户端请求。