App爬虫进阶——抓包拿不到数据怎么办
阅读本文所需要的基础知识:本文假设你已经掌握了基本的app抓包流程,电脑上Fiddler或同类型抓包工具,有夜神/逍遥/雷神或任一手机模拟器,且模拟器安装了Fiddler的证书。但在抓包过程中遇到了断网、闪退等状况。
抓app包时断网、被检测、闪退是爬虫工程师经常会遇到的事,本文介绍几个可能的原因和可能的解决方案。
潜在原因
-模拟器不适配该app
别笑,真的有这种奇葩无语的可能,而且还不少见,换成真机或者另一个软件的模拟器试试。
- Android版本不适配该app
部分app的最低版本限制已经到了Android 5,针对这类app,Android 4.3或者更低版本的模拟器就会报错和闪退。
针对上述出现的问题,我非常建议使用真机,模拟器在很多情况下确实心有余而力不足。
- app自身做了防护
app在模拟器中启动和运行正常,但抓包时就会闪退、无网络、报错,这一类问题就是本文研究的重点。
这种一般是App自身做了防护,最常见的一种就是SSL证书验证(SSL Pinning)。比如抖音、小红书,FaceBook,Twitter等app,都有这种验证和防护。
SSL Pinning
一种用来防止中间人攻击的技术,广泛应用于阻止app的抓包和嗅探。
众所周知,Fiddler这一类抓包软件本质上就是一种中间人攻击,所以一旦遇到了SSL Pinning就凉凉了。但我们肯定不能让SSL验证阻拦我们抓包的脚步,我们可以通过如下的方法解决SSL证书验证。
1. 降低版本——降低App和Android系统的版本
很多SSL验证和其他防护都是在新版app中才有的,而且一些方案都是Android 7.0以后才开始生效,所以为了抓到包,我建议的配置环境是Andorid 5的模拟器 + 较低版本的APP。
如何获得较低版本的APP,百度豌豆荚应用商城,可以下载APP的历史版本,有的app太旧的版本是无法正常使用的,所以需要多尝试几个旧版,一般来说,只距离现在半年的app版本是可以用的。
2.禁止校验——禁止app内部的ssl 证书校验
如何禁止app内部的ssl 证书校验?我们可以直接Hook掉app验证SSL Pinning的方法(由于这一篇教程是提供解决方案,所以不会阐述太多原理,而会着重讲解实现的步骤和细节上)
Android平台上我们可以使用Xposed+Justtrustme,ios中也有其实现,ios可以参考这个github项目https://github.com/nabla-c0d3/ssl-kill-switch2。
Xposed是什么
Android平台最强大的框架,它可以在不修改APK的情况下影响程序的运行,Xposed是一个框架和平台,里面有许多IT工程师编写的功能模块,比如直接把APP的界面改成自己想要的样子,去掉界面里不喜欢的东西, 自动抢红包,消息防撤回,步数修改等等。
JustTrustMe
Xposed中的一个模块,可以禁止app内部的证书校验。
安装Xposed
为了体现效果,我们这次采用直采宝这个app作为例子,所有的app和资料可以在百度云中下载。
链接:https://pan.baidu.com/s/1Tc5gMYZHYb7-IJCBeHddFQ
提取码:cayq
我们这次选择Android 7.0的真机,大家也可以使用模拟器,在直采宝这个app上没有区别。但比如小红书这一类app,它自身会检测是否为模拟器,这一类app我们酒=就需要真机操作。
首先我们安装和运行直采宝,界面如下
接下来,我们打开Fiddler,设置手机Wifi代理,并清除app缓存(或者卸载重装),再次打开app。
在网络状况良好的情况下,出现了app内断网的情况,除此之外,闪退、“您的app版本过久”、“正在连接中,app出现故障”等提示,其实也都只是友好的劝退方式,实际上是SSL Pinning检测到了我们的中间人攻击,并进行了阻拦。
使用Xposed+JustTruthMe禁止SSL 验证。
首先需要说明,Xposed框架需要root权限,且有让手机变砖的风险,而优点是可玩性高,功能性强大。我们在这儿采用一个更优的方案——太极Xposed框架。
太极Xposed是国内大神开发的一款免root Xpose框架,对于真机来说,真是再好不过。
首先安装太极Xposed(我的百度网盘里有这个教程所需要的全部apk和资料),然后安装。
Xposed的使用需要配置两个地方
- 模块管理——安装模块
我们这儿用到的是Justtrustme模块,首先,我们在手机上像正常安装app一样将网盘中的Justtruthme apk包进行安装,注意,安装完成后是找不到的,因为它是一个无界面的app。之后,我们点击模块管理,将JustTrustMe勾选上,至此,模块这一块就配置好了。
- 应用配置
点击创建应用,然后勾选直采宝,按照提示一步步操作即可。注意,太极Xposed框架会将本机的直采宝卸载掉,并在太极Xposed中安装一个新的直采宝,所以太极app需要有安装app的权限。
一切完成后我们重新打开直采宝,SSL Pinning就已经被我们解决掉了。
除此之外,大家可以拿小红书试一下,以下是Xposd+Justtrustme前后的对比图。
Xposed之前
Xposed+JustTrustMe之后
OK!!!
本篇教程已经结束了,希望大家多多关注我下半年的app逆向教程,两开花两开花。
参考文档:
https://blog.csdn.net/coder_pig/article/details/80031285
https://www.jianshu.com/p/22b56d977825
https://zhuanlan.zhihu.com/p/56397466
App爬虫进阶——抓包拿不到数据怎么办相关推荐
- 那些年我用过的app爬虫常用抓包软件
app爬虫抓包常用软件: 1.fiddler: 常用抓包软件之一,因为界面太过复杂,我不常用 2.Charles: 因为整体页面看着比较有规律性,功能相对来说还是比较齐全的,基本没满足日常抓包需求,所 ...
- linux 抓包工具_03-Python爬虫工程师-抓包工具
Python爬虫工程师-抓包工具 Python爬虫工程师-抓包工具思维导图 mitmproxy抓包工具 介绍 mitmproxy就是用于MITM(中间人攻击)的proxy 特点: 1.和正常的代理一样 ...
- python爬虫——论抓包的正确姿势和学好Javascript的重要性(1)
没事想爬下数据,就入了scrapy坑,跟着https://zhuanlan.zhihu.com/data-factory这篇教程走,中间被小数量的网站坑过,不过还是写出了爬虫~~ 切糕王子:毫无防御, ...
- 漫画:App 防止 Fiddler 抓包小技巧!
判断当前系统是否挂代理 获取当前系统是否设置代理,可以根据不同的 Api Level,分别通过 System.getProperty() 和 android.net.proxy.getXxx() 方法 ...
- Python 爬虫、抓包
什么是爬虫? 爬虫就是模拟客户端(浏览器.电脑app.手机app)发送网路请求,获取相应,按照规则提取数据的程序. 模拟客户端发送网路请求:照着浏览器一模一样的请求,获取和浏览器一模一样的数据 爬虫的 ...
- 安卓抓包 python hook_搞定某APP的TCP抓包,并直接调用so文件进行Hook抓取
APP抓包比较繁琐,尤其是对方优先走socket,发TCP包,而不是走应用层发http/https协议.这种抓包更烦躁,绝大部分利用中间人攻击原理这种代理抓包软件都抓不到tcp请求,代理抓包软件大都只 ...
- burpsuite小米手机抓包_使用burpsuite实现Android APP的HTTPS抓包
0x00 序 在对app做安全测试时,通常会需要对app的网络通信进行抓包,但是面对app使用了https包时,由于手机没有burp的证书,因此可能会导致该次通信失败,所以下面的文章主要讲述如何通过b ...
- APP 怎么进行抓包接口测试
在讲抓包之前,先讲个小故事: 某程序猿写JS,自己手机没电了,拿同事老王的安卓机调试,很简单的获取用户微信昵称,结果死活获取不到,一直显示为null.应该是跨平台问题,因为之前在自己iPhone上是没 ...
- 12Python爬虫---Fiddler抓包工具使用
一.什么是Fiddler 二.爬虫与Fiddler不得不讲的事 三.Fiddler基本原理与界面 1.Fiddler工作原理 2.Fiddler界面 3.捕捉会话功能 四.Fiddler的QuickE ...
最新文章
- ASP.NET分页方法的了解程度
- 阿里云服务器win2003系统配置IIS+php+mysql+phpmyadmin+zend 500
- [原创]Maven实战-读书笔记
- 中文任务型对话系统中的领域分类
- VS2019 更新MSDN并创建快捷方式
- 算法python知乎_20个算法李小文知乎文章与Github代码汇总
- java日期时间各种变换及处理
- Springboot与jsp使用404错误
- spring配置mysql事务管理_Spring 数据库事务管理机制
- 蓝桥杯 ADV-225 算法提高 9-2 文本加密
- 最科学 最舒服 【色彩搭配】 平面设计师必备
- 身份与访问管理技术在智慧城市的应用
- 第十二章:(1)Fork/Join 分支合并框架
- 乐视网正式聘用刘延峰担任公司总经理 任期三年
- 正则表达式JS-1212
- 新库上线 | CnOpenDataA股上市公司财务报表数据
- chatgpt简单的问答机器人
- 如何修改打印服务器格式,打印机服务器设置了格式
- javascript教程系列-1.JavaScript基础
- RabbitMq 有啥用