分享

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

 风声之家 2022-06-27 发布于江苏

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

Python编程大全 2022-06-27 11:00 发表于陕西

收录于合集

#Python编程大全67
#Python50
#抓包工具1
#编程1
#爬虫2
关注 Python编程大全,加星标精彩内容不迷路

Python编程大全

分享Python技术文章,实用案例,热点资讯。 你想了解的Python的那些事都在这里...... 当你的才华还撑不起你的野心的时候,那就安静下来学习吧!

10篇原创内容

公众号

传统的抓包工具,如: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证书;用浏览器打开证书地址,访问

http://ipv4:8888/,点击页面底部 FiddlerRoot certificate下载证书,打开设置 > 安全>更多安全设置 > 加密和凭据 > 从存储设备安装,选择下载好的 FiddlerRoot.cer 进行安装。


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


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


图片


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


END


图片

Python编程大全

分享Python技术文章,实用案例,热点资讯。 你想了解的Python的那些事都在这里...... 当你的才华还撑不起你的野心的时候,那就安静下来学习吧!

10篇原创内容

公众号

*声明:本文转自网络,版权归原作者所有,如来源息有误或侵犯权益,请联系我们删除或授权事宜。

收录于合集 #Python编程大全

 67

下一篇5个节约生命的Python小技巧~~~

喜欢此内容的人还喜欢

编码安全研究

不喜欢

确定

Apache InLong

不喜欢

确定

02CERT

不喜欢

确定

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多