使用Fiddler抓包、模拟弱网和篡改请求
继续跟大家分享另一款网络封包分析工具Fiddler,让我们一起看一下在Fiddler工具下是如何实现抓包、模拟弱网和篡改请求的。
继续跟大家分享另一款网络封包分析工具Fiddler,让我们一起看一下在Fiddler工具下是如何实现抓包、模拟弱网和篡改请求的。
一、Fiddler安装
Fiddler下载地址:https://www.telerik.com/fiddler
点击fiddler tools—>选择Fiddler Classic—>点击Try For Free—>填写信息选择download
下载完成后得到FiddlerSetup.exe文件,双击文件,一直点击确定直至安装完成。
二、Fiddler抓包原理
Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。当Fiddler退出的时候它会自动注销,这样就不会影响别的 程序。
注意:不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。
三、Fiddler配置
1、电脑抓包配置
1)系统自动打开代理,点击Tools–Options,点击Connections,页面如下:
选择Act as system proxy on startup,系统自动打开代理,直接在Edge和Chrome中访问网址抓包即可。
2)手动配置代理,未选择Act as system proxy on startup,点击windows图标—>点击设置—>点击 网络和Internet —>点击代理
开启手动代理设置按钮,地址配置127.0.0.1(本地),端口和Fiddler中Fiddler listens on port一致,点击保存
打开浏览器,访问网址,即可在Fiddler中看见相应的请求记录。
2、配置HTTPS证书
打开Fiddler Options->HTTPS 。 (配置完后记得要重启Fiddler)
选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求,第一次会弹出证书安装提示,若没有弹出提示,勾选Actions-> Trust Root Certificate
另外,如果你要监听的程序访问的 HTTPS 站点使用的是不可信的证书,则请接着把下面的 “Ignore servercertificate errors” 勾选上。
证书安装提示:
点击Yes,留意一下红框里面的内容,DO_NOT_TRUST_FiddlerRoot ,这个就是证书的名称。
点击是。
点击确定,这样Fiddler证书就已经添加成功了。
3、移动端抓包配置
fiddler监听端口默认是 8888,你可以把它设置成任何你想要的端口。勾选上 “Allow remote computersto connect” ,允许远程设备连接。
为了减少干扰,可以去掉 “Act assystem proxy on startup” (windows自身代理)。
首先查看电脑的 IP 地址,确保手机和电脑在同一个局域网内。
Android设备上的配置:
将 Fiddler 代理服务器的证书导到手机上才能抓这些 APP 的包。
导入的过程:打开浏览器,在地址栏中输入代理服务器的 IP 和端口(即电脑的IP加fiddler的端口),会看到一个Fiddler 提供的页面,然后确定安装就好了
打开 WiFi 设置页面,选择要连接的 wifi ,并且长按,在弹出的对话框中,选择“修改网络”。在接下来弹出的对话框中,勾选“显示高级选项”。
在接下来显示的页面中,点击“代理”,选择“手动”。代理服务器主机名设为 PC 的 IP ,代理服务器端口设为 Fiddler 上配置的端口 8888,点”保存”。
iOS设备上的配置:
苹果手机上的配置其实跟 Android 手机基本是一样的。如图:
至此已配置完成。
四、Fiddler使用
1、主界面:
2、自定义请求
Composer允许自定义请求发送到服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求
Parsed模式下你只需要提供简单的URLS地址即可(如下图,也可以在RequestBody定制一些属性,如模拟浏览器User-Agent)
3、拦截与修改
如图,箭头所指的位置时可以点击的。共三种状态:
空白:不设置拦截。
箭头向上:表示拦截请求。此时客户端的请求是无法直接到达目标服务器的,需要手动控制。
箭头向下:表示拦截响应。此时目标服务器的响应是无法直接到达客户端的,需要手动控制。
还有一种拦截请求的方式
在命令行中输入命令:
bpu www.baidu.com (拦截请求)
bpuafter www.baidu.com(拦截响应)
这种方法只会拦截www.baidu.com
拦截请求并且修改请求的操作步骤:
拦截请求并修改:
如图,操作步骤:
1)设置断点请求,访问网页
2)点击对应的会话
3)查看请求报文信息
4)修改请求内容
5)完成断点,放行,把该请求发送给目标服务器。
图中Break On Response表示把请求发给服务器,但是服务器的响应被fiddler拦截,此时
可以修改响应内容(和断点响应类似)。
拦截响应并修改:
和断点请求操作类似,只是在响应区域修改报文信息即可。
在断点响应时,请注意超时时间。
4、过滤
1、域名过滤,只显示特定域名的记录:
*.baidu.com表示所有的百度二级域名会话;
*baidu.com表示一级域名+二级域名的会话。设置好了后一定要点击Actions生效;
2、类型过滤,一般对各种图片、CSS、JS这类的静态素材也不需要看的情况下,直接全部过滤掉
.*.(bmp|css|js|gif|ico|jp?g|png|swf|woff)
3.根据返回状态码,比如只想显示200的状态,其他的不显示
5、模拟弱网
打开Fiddler,Rules->Performance->勾选 Simulate Modem Speeds,勾选之后访问网站会发现网络慢了很多
弱网原理:
Rules—>Cutomize Rules打开CustomRules.js 文档
在文件中搜索关键字,m_SimulateModem
让我们来分析一下这几行代码:
首先来判断m_SimulateModem是否为true,也就是是否设置了弱网模式。
如果为弱网模式。则分析代码
oSession[“request-trickle-delay”] = “300”; 注释的也很明白,Delay sends by 300ms per KB uploaded.上传1KB需要300ms,转化一下上传速度:1Kb/0.3s = 10/3(KB/s)
如果你想设置上传的速度为50KB/s,你则需要设置Delay 时间为 20ms
同样的方法,也可以限制上传的速度,调整oSession[“response-trickle-delay”]即可。
6、内置命令
?
问号(?)后边跟一个字符串,Fiddler 将所有会话中存在该字符串匹配的全部高亮显示(下图输入的是 ?google.com)
匹配的字符串是 Protocol、Host 和 URL 中的任何子字符串。
> 和 <
大于号(>)和小于号(<)后边跟一个数值,表示高亮所有尺寸大于或小于该数值的会话。
比如我输入 >5000,按下回车后结果如下:
可以直接输入 >5k 表示你想高亮所有尺寸大于 5KB 的会话。
=
等于号(=)后边可以接 HTTP 状态码或 HTTP 方法,比如 =200 表示高亮所有正常响应的会话。
下图输入了 =POST,表示希望高亮所有 POST 方法的会话:
@
@ 后边跟的是 Host,比如我想高亮所有鱼C论坛的连接,我可以 @bbs.fishc.com
bpafter
bpafter 后边跟一个字符串,表示中断所有包含该字符串的会话。
比如我想中断所有包含 fishc 的响应,那么我输入 bpafter fishc,然后在浏览器输入 bbs.fishc.com,发现并没有收到服务器响应,因此都给 Fiddler 断下来了:
bps
bps 后边跟的是 HTTP 状态码,表示中断所有为该状态码的会话。
bpv 或 bpm
bpv 或 bpm 后边跟的是 HTTP 方法,表示中断所有为该方法的会话。
bpu
跟 bpafter 类似,区别:bpu 是在发起请求时中断,而 bpafter 是在收到响应后中断。
cls 或 clear
清除当前的所有会话。
g 或 go
放行所有中断下来的会话。
hide
将 Fiddler 隐藏。
show
将 Fiddler 恢复。
urlreplace
urlreplace 后边跟两个字符串,表示替换 URL 中的字符串。比如 urlreplace baidu fishc 表示将所有 URL 的 baidu 替换成 fishc。
温馨提示:直接输入 urlreplace 不带任何参数表示恢复原来的样子。
start
Fiddler 开始工作。
stop
Fiddler 停止工作。
quit
关闭 Fiddler。
select
select 后边跟响应的类型(Content-Type),表示选中所有匹配的会话。
比如希望 Fiddler 选中所有的图片,可以使用 select image;
而 select css 则选中所有的 css 文件。
更多推荐
所有评论(0)