您当前的位置:首页 > 计算机 > 软件应用 > 网络应用

『Python爬虫』抓包工具 Fiddler 入门教程

时间:09-18来源:作者:点击数:

如今Python爬虫越来越火,有想学好Python爬虫的小伙伴可以前往gzh【Python编程学习圈】领取系统的学习资料以及教程视频,还分享有大量的技术干货文章可以阅读学习,欢迎大家关注学习。

传统的抓包工具,如:Fiddler、Charles、Wireshark、Tcpdump,大家肯定都不陌生了;

今天我们就来聊一聊这款常用的抓包工具:Fiddler;

fiddler简介

Fiddler是个蛮好用的抓包工具,也是比较好用的web代理调试工具之一;

它能记录并检查所有客户端与服务端的HTTP/HTTPS请求,能够设置断点,篡改及伪造Request/Response的数据;

修改hosts、限制网速、http请求性能统计、简单并发、接口测试、辅助自动化测试等等,也可以用来检测网络安全。

Fiddler与其他抓包工具

① Firebug

虽然它可以抓包,但对于分析http请求的详细信息不够强大,模拟http请求的功能也不够。

且firebug常常是需要“无刷新修改”,如果刷新了页面,所有的修改都不会保存;

② Wireshark:

通用的抓包工具,能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容。

但如果是TCP、UDP协议可以用wireshark;

③ Httpwatch

也是比较常用的http抓包工具,但是只支持IE和firefox浏览器(其他浏览器可能会有相应的插件);

而Fiddler 是一个使用本地 127.0.0.1:8888 的 HTTP 代理,任何能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序都可以使用 Fiddler。

爬虫与Fiddler:

在一些稍复杂的网络请求中,我们直接看网址的变化是看不出规律的,如果要自动爬取,就必须通过程序构造这些请求,并分析这些请求的规律。

进行登录时,很多网页的真实登录处理并不是我们看到的网址,这些网址一般需要通过工具进行分析得出。

分析过程中,抓包软件的配合会变得更加方便。

Fiddler的工作原理

Fiddler是以代理WEB服务器的形式工作的,它默认使用代理地址**:127.0.0.1**, 端口**:8888**。 

当Fiddler开启时会自动设置代理, 退出的时候它会自动注销代理,这样就不会影响别的程序。

不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。

解决的办法是重新启动下Fiddler;

Fiddler界面

Fiddler想要抓到数据包,要确保Capture Traffic是开启,在File –> Capture Traffic。

开启后再左下角会有显示,当然也可以直接点击界面底栏左下角的图标来关闭/开启抓包功能。

左边面板

左边web session面板的字段及图标含义;

右边面板

右边是详情和数据统计面板;

1)Statistics

关于HTTP请求的性能(例如发送/接受字节数,发送/接收时间,还有粗略统计世界各地访问该服务器所花费的时间)以及数据分析。

2)Inspectors

是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容;

提供headers、textview、hexview,Raw等多种方式查看单条http请求的请求报文的信息。

3)AutoResponder 

可用于拦截某一请求,即按自己添加的指定规则重定向到本地的资源或Fiddler资源,从而代替服务器响应。

4)Composer 

自定义请求发送服务器,Parsed模式下你只需要提供简单的URLS地址即可;

5)Filters 

即过滤规则,通过设置过滤规则来过滤所需的http请求,勾选Use Filters开启过滤器。

内外网过滤:

对host过滤:

输入多个HOST,多个之前用半角逗号或者回车分隔;

支持通配符:*,baidu.com;

这里有两个最常用的过滤条件:Zone和Host;

  • Zone 指定只显示内网(Intranet)或互联网(Internet)的内容;
  • Host 指定显示某个域名下的会话;

6)timeline 

请求响应时间,在左侧会话窗口点击一个或多个请求,Timeline 便会显示指定内容从服务端传输到客户端的时间:

Fiddler设置代理

fiddler是一个很好的抓包工具,默认是抓http请求的,对于pc上的https请求,会提示网页不安全,这时候需要在浏览器上安装证书。

谷歌、IE浏览器

谷歌浏览器和IE浏览器启动的时候,就会默认读取系统代理,所以只需要将Fiddler设置为启动后作为系统代理即可。

设置启动即作为系统代理——点击Tools->Options->Connections;

这样设置后,我们在谷歌浏览器和IE浏览器访问HTTP请求,就会在Fiddler工具左侧中显示出请求,但是HTTPS的请求却没有显示出来?

原因Fiddler作为一个代理服务器,是可以代理到HTTPS请求的。

但是HTTPS可以理解为HTTPS=HTTP+SSL/TLS,也就是HTTPS是加密的,是有证书存在的,所以我们需要配置解密HTTPS并安装证书。

配置解密HTTPS并安装证书——点击Tools->Options->HTTPS。

查看证书是否安装成功

浏览器中访问HTTPS的页面,也能在Fiddler中显示;

Fiddler断点功能

通信过程中,在传递信息的中间进行修改后再传递,那么就可以使用Fiddler的断点功能。

(1)使用Fiddler的断点,可以实现的功能:

  • 拦截响应数据,并进行相应修改
  • 修改请求数据中的头信息,实现相应功能,比如模拟用户请求等功能
  • 构建请求数据,随意进行数据提交

断点可以打到两个地方:

  • before response:这个是打在request请求的时候,未到达服务器之前。
  • after response:也就是服务器响应之后,在Fiddler将响应传回给客户端之前。

断点请求/响应

如图,箭头所指的位置时可以点击的,共三种状态:

  • 空白:不设置断点。
  • 箭头向上:表示断点请求。此时客户端的请求是无法直接到达目标服务器的,需要手动控制。
  • 箭头向下:表示断点响应。此时目标服务器的响应是无法直接到达客户端的,需要手动控制。

还有一种打断点的方式:在命令行中输入命令; 

  • bpu www.baidu.com  (断点请求)
  • bpuafter www.baidu.com(断点响应)

这种方法只会中断www.baidu.com;

断点请求并修改

 操作步骤:

  • 设置断点请求,访问网页
  • 点击对应的会话
  • 查看请求报文信息
  • 修改请求内容
  • 完成断点,放行,把该请求发送给目标服务器

图中Break On Response表示把请求发给服务器,但是服务器的响应被fiddler拦截,此时可以修改响应内容(和断点响应类似)。

-> 断点响应并修改

  • 和断点请求操作类似,只是在响应区域修改报文信息即可。
  • 在断点响应时,请注意超时时间。

-> Fiddler中拦截请求:

  • F11先开始拦截,然后在发送请求
  • 修改拦截下来的请求,修改数据
  • shift+F11关闭拦截
  • run to complete,把所有拦截下来的请求发送过去

-> Fiddler中拦截响应:

  • alt+F11开始拦截
  • 修改数据
  • shift+F11关闭拦截
  • run to complete,把修改的请求发送过去

断点命令

断点的命令则可以精确设置需要截获那些请求,如下表所示:

注意:

如bpafter断点命令使用方法为:bpafter 后边跟字符串->表示中断所有包含该字符串的请求;bpafter ->表示解除刚刚的中断断点;

命令设置断点

响应断点
bqafter 百度一下,你就知道  对www.baidu.com进行响应断点
bqafter                取消响应断点

请求断点
bp  百度一下,你就知道      对www.baidu.com进行请求断点
bp                     取消请求断点
手机端抓包操作

以Android手机上配置Fiddler工具为主,讲解配置手机抓包过程。

配置Android手机

Fiddler配置中Connections中设置允许远程连接和端口号。

手机端设置:手机端与Fiddler工具所在电脑处于同一个网络中。

查看电脑的IP 地址,手机网络代理指定为电脑IP地址;

打开设置 > WLAN > 连接上的 WLAN 设置,点击代理 > 手动,设置主机名为 Fiddler 所在主机的 IP,端口为 Fiddler 监听端口。

安装Fiddler证书;用浏览器打开证书地址,点击页面底部 FiddlerRoot certificate下载证书,打开设置 > 安全>更多安全设置 > 加密和凭据 > 从存储设备安装,选择下载好的 FiddlerRoot.cer 进行安装。

浏览器打开目标地址,已经可以抓取 HTTPS 包了;

注意:测试完毕,记得关闭代理,否则手机无法上网!

最后再多说一句:Fiddler请谨慎使用!

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐