《Fiddler系列二:Fiddler实战抓取手机端数据》
前言
本文来源属于网络资源整理,是将多位大神讲解的优秀知识点以及自己的实践操作加理解再次重新整合在一块儿,希望对大家有所帮助。如有冒犯敬请谅解,请第一时间联系,邮箱:[email protected] 我们将积极配合处理!
如果有问题,可以加QQ群:1091481018互相学习,借鉴链接如下,除此借鉴文章之外,他们还有很多的优秀文章大家也可以简介阅读噢,希望对大家喜欢:
【作者:小坦克】https://www.cnblogs.com/TankXiao/p/3063871.html
【作者:purplelavender】https://www.cnblogs.com/woaixuexi9999/p/9247705.html
《目录》
前言
一、序言
二、Fiddler抓包原理
三、Fiddler截获HTTP包用处
四、Fiddler配置
(一)前提条件
(二)Fiddler工具配置
(三)Fiddler手机端配置
五、Fiddler使用
(一)功能界面简单介绍
(二)实际操作讲解
五、总结
一、序言
Fiddler是位于客户端和服务器端的HTTP代理,也是目前最常用的“HTTP”抓包工具之一。不但能截获各种浏览器发出的HTTP请求, 也可以截获各种智能手机发出的HTTP/HTTPS请求。同时Fiddler也能捕获IOS设备发出的请求,比如IPhone, IPad, MacBook. 等等苹果的设备。同理,也可以截获Andriod,Windows Phone的等设备发出的HTTP/HTTPS。(本文介绍Fiddler截获Andriod发出的HTTP/HTTPS包)
二、Fiddler抓包原理
Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888. 当Fiddler会自动设置代(退出的时候它会自动注销代理),这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler.
三、Fiddler截获HTTP包用处
用处一: 手机软件程序员利用Fiddler,可以截获手机发出的HTTP包, 从而调试程序。
用处二: 软件测试人员用于测试智能手机上的软件。
用处三: 可以用来在App应用商店中刷排名。
用处四: 截获了HTTP/HTTPS后,你想干什么就干什么,比如修改Request,或者Response(这个也是在基于 请求或者响应的规则上进行修改)。
四、Fiddler配置
(一)前提条件
在使用Fiddler抓取数据包的时候,需要满足以下前提条件是:
(1)在自己的电脑上安装Fiddler的工具。
(2)电脑连接的网络需要和手机连接同一个网络 否则Andriod不能把HTTP发送到Fiddler的上。
(二)Fiddler工具配置
(1)首先打开Fiddler==》选择“Tools”菜单下的“Options”功能==》点击“HTTPS”。并按照截图上的配置(选中"Decrpt HTTPS traffic")。
(2)另外,如果你要监听的程序访问的 HTTPS 站点使用的是不可信的证书,则请接着把下面的 “Ignore servercertificate errors” 勾选上。
证书安装提示:点击Yes,留意一下红框里面的内容,【DO_NOT_TRUST_FiddlerRoot 】,这个就是证书的名称。最后一只点击确定,这样Fiddler证书就已经添加成功了。
(3)如果需要查看证书:点击Actions下的open windows certificate Manager 按钮。在这里就可以看到证书已经添加进去了,证书名称就是之前提醒大家留意的【DO_NOT_TRUST_FiddlerRoot】
(三)Fiddler手机端配置
(1)fiddler监听端口默认是 8888,你可以把它设置成任何你想要的端口。
勾选上 “Allowremote computersto connect” ,允许远程设备连接。其中为了减少干扰,可以去掉 “Act assystem proxy on startup” 。
(2)首先查看自己电脑的IP地址,确保手机和电脑在同一个局域网内,
(3)打开 WiFi 设置页面,选择要连接的 wifi(这里连接的一定要和自己电脑上面的Wifi是同一个Wifi) ,并选择“修改网络”。在接下来弹出的对话框中,勾选“显示高级选项”。在接下来显示的页面中,点击“代理”,选择“手动”。代理服务器主机名设为 PC 的 IP ,代理服务器端口设为 Fiddler 上配置的端口 8888,点“保存”。至此所有的配置已经基本完成。
(4)将 Fiddler 代理服务器的证书导到手机上才能抓这些 APP 的包。导入的过程:打开浏览器,在地址栏中输入代理服务器的 IP 和端口(即电脑的IP加fiddler的端口),会看到一个Fiddler 提供的页面,然后确定安装就好了。
五、Fiddler使用
(一)功能界面简单介绍
在此之间,将几个常用的功能简单的再解释一次,以便于加深记忆,想查阅更加湘西的功能按钮,请
查阅上一篇文章“《Fiddler系列一:Fiddler网络爬虫工具介绍》”。
(1.1)主界面
(1.2)快捷功能区
(1.3)会话列表
(1.4)会话图标
(二)实际操作讲解
(2.1)Statistic标签
关于HTTP请求的性能和其他数据分析,从中看出一些基本性能数据:如DNS解析的时间消耗是216ms,建立TCP/IP连接的时间消耗是3243ms。同时访问数据是多少字节等信息。
(2.2)Inspectors标签
提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息,分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。对于每一部分,提供了多种不同格式查看每个请求和响应的内容。
1、ImageView标签
JPG 格式使用 ImageView 就可以看到图片,选择一条Content-Type是image/jpeg的回话,点击TextView
2、TextView 标签
HTML/JS/CSS 使用 TextView 可以看到响应的内容。选择一条Content-Type是text/html的回话,点击TextView
3、Raw标签
Raw标签可以查看响应报文和响应正文,但是不包含请求报文。这是将整个内容显示为纯文本。
4、Auth标签
Auth则可以查看授权Proxy-Authorization 和 Authorization的相关信息
5、Cookies标签
Cookies标签可以看到请求的cookie和响应的set-cookie头信息。
(2.3)AutoResponder标签(实用)
Fiddler 的AutoResponder tab允许你从本地返回文件,而不用将http request 发送到服务器上。
下边直接说他的使用方式把:使用的是手机上边的百度手机助手的棋牌游戏界面。
1、首先看图 (我们来重定向第一个欢乐斗地主这个图片)
2、打开Fiddler,然后点击棋牌游戏进入上边这个界面,就能发现会请求当前显示的这五张图片
3、这个时候我们切换到AutoResponder这个界面,点击鼠标左键,把要重定向的这个session会话拖动到AutoResponder界面中
4、选择了我们要返回的图片以后,然后点击save。
然后关掉应该,清楚应用缓存,然后在打开,点击棋牌游戏,可以看到我们之前的头像已经给替换掉了。这是实现了替换其中一个,也许你会说,是不是本来就是那样啊,那么在介绍一个根据别的规则来进行重定向。
5、我们通过重定向向,把所有的百度手机助手中的图片都替换成刚才的小头像。然后在选择刚才的那个头像图片,然后save。清除缓存,重新打开,可以看下图:
可以看到,所有的jpg格式的都变成了我们的头像了。关于重定向还有很多,剩下的就需要自己慢慢研究了。
【小结】:AutoResponder功能是Fiddler最实用的功能之一,Rule可以自由地设定,可以使用搜索(默认)、精确匹配(EXACT)、正则表达式匹配(REGEX)。处理方式可以选择使用文件,也可以选择合适的时间暂停数据流(*bpu、*bpafter),人工干预。通过以上几个步骤,我们演示了怎样将HTTP请求重定向到本地的文件,进行调试,这在我们诊断跟踪一些js文件但却不能修改js文件时非常有用。
比如:在用浏览器测试P页面时,P页面引入了一个js资源文件R.js,由于R.js文件在服务器S上,而我此时又不能登录S服务器(没有S服务器的帐 号),此时我们就可以通过浏览器将R.js文件下载到本地,然后对本地的R.js文件进行调整,最后通过设置Fiddler,将R.js文件的请求使用本 地的R.js文件。
(2.4)Composer 自定义请求发送服务器(实用)
Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求。Parsed模式下你只需要提供简单的URLS地址即可(如下图,也可以在RequestBody定制一些属性,如模拟浏览器User-Agent)
【注意】这里我以举一个实例:再次之前我拖拽过来的参数如下“RequestBoly”中,在此我可以修改它的参数值(但是注意,有的地方添加了防御,想改变原有的规则应该是不可能的。打个比方,别人接受的是3个参数,而你删了一个,只传2个等问题)
(2.5)断点请求/响应(实用)
如图,操作步骤:
l 选中一条请求,然后右键设置断点请求,访问网页
l 点击对应的会话
l 查看请求报文信息
l 修改请求内容
l 完成断点,放行,把该请求发送给目标服务器。
图中Break On Response表示把请求发给服务器,但是服务器的响应被fiddler拦截,此时可以修改响应内容(和断点响应类似)。和断点请求操作类似,只是在响应区域修改报文信息即可。在断点响应时,请注意超时时间。
五、总结
Fiddler是一个功能强大的网络抓包工具,本文对如何用Fiddler抓取HTTP、HTTPS、手机APP会话数据报介绍了。当然,Fiddler的功能远不止这些,不过本文介绍的操作用于一般的网络爬虫数据包分析足以。
最后如果在线的读者你喜欢的话可以留下一个小小的“笔芯”,同时在本文中有什么问题,或者有错误的地方,也可以添加以下QQ群进行学习交流。同时在文章发布之前,你们在网页上所看到的文章我已经编写好了离线文档,如果有需要,同样也可以加群下载。
学习和成长本就是这样,痛并快乐着,而又是一个漫长的过程,因为有你们的分享和大家的互相监督学习,才能够不断的进步和成长。