产生原理
是这样的,当我们使用抓包工具抓包时,抓包工具在拦截了服务端返回的内容并重新发给客户端的时候使用证书不是服务器端原来的证书,而是抓包工具自己的,抓包工具原来的证书并不是APP开发者设定的服务端原本的证书,于是就构成了中间人攻击,触发SSL Pinning机制导致链接中断,所以我们无法直接抓到包。
常见的开启了SSL Pinning的APP大致分为两种操作:
1、服务端使用了某个权威证书颁发机构(CA)颁发的证书,并且在APP中校验证书是否正常;
2、服务端使用了CA颁发的证书或者自己给自己颁发证书,并且在APP中校验证书本身是否正常的,需要将证书与APP本体一同下发。有把证书混淆在代码里面藏起来的,也有直接放在资源目录下的。
SSL Pinning介绍:
Xposed框架介绍:
Xposed框架(Xposed Framework)是一套开源的、在Android高权限模式下运行的框架服务,可以在不修改APK文件的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。
Xposed框架安装和JustTrustMe安装
python安装mitmproxy
pip install mitmproxy
安装完成后,开启一个mitmproxy的服务,比如执行命令mitmweb -p 8889,然后在浏览器或者移动端中进行mitm.it进行证书下载,否则会出现访问网站时证书不受信任,在windows系统中可以使用mitmweb、mimtdump查看分析网站接口
1. 查看本地电脑的ip地址,修改夜神模拟器中的wifi,修改网络改成手动, 输入IP地址和抓包工具的开启的端口号。
2. 将模拟器开始开发者模式,打开usb工具。
3. 输入adb devices,查看链接的设备名称。
问题:
如何查看app的包名、appActivity、deviceName。
设备需要修改执行程序才能连接到移动端设备等。
最后:一般爬取分为自动化操作app + mitmdump抓取流请求或者响应拦截,最终将数据存入指定数据库中。