目录
抓包工具对比
windows抓包工具
1、Fiddler是在windows上运行的程序,专门用来捕获HTTP,HTTPS。
2、wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容。
如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark。
linux抓包工具
tcpdump抓包
fiddler原理
Fiddler是一种用于HTTP调试和网络流量捕获的代理服务器工具。它运行在客户端和服务器之间,拦截并记录进出应用程序的HTTP/HTTPS请求和响应数据。
工作原理如下:
1、客户端配置:首先,需要将客户端的代理设置为Fiddler的监听端口(默认为8888),以便将所有流量重定向到Fiddler。
2、代理拦截:当客户端发起HTTP/HTTPS请求时,请求会通过Fiddler作为代理服务器进行转发。
3、数据捕获与解析:Fiddler会拦截并记录所有进出应用程序的HTTP/HTTPS流量数据,包括请求头、请求体、响应头和响应体。
4、数据展示与分析:捕获的数据会在Fiddler界面中进行展示,以便用户查看和分析。用户可以查看每个请求的详细信息,并进行筛选、排序和搜索等操作。
5、请求修改与重放:在Fiddler中,用户可以修改请求数据、添加或删除请求头,然后将修改后的请求重新发送给服务器,从而实现对请求的调试和修改。
6、HTTPS解密:Fiddler可以使用自签名证书实现对HTTPS流量的解密,使得用户能够查看HTTPS请求和响应的明文内容。
总之,Fiddler通过拦截和记录应用程序的HTTP/HTTPS流量数据,提供了一个便捷的方式来调试、分析和修改网络请求。
fiddler安装与配置
fiddler安装
官网地址:https://www.telerik.com/fiddler
fiddler配置
fiddler界面熟悉
网络教程居多,不详细展开
fiddler用途
1、监听http/https的流量,可以截获从浏览器或者客户端软件向服务器发送的http/https请求;
2、对截获之后的请求,我们还能够查看请求中的内容,分析数据是否准确(Inspectors );
3、伪造请求,不仅可以伪造客户端的请求,还能够伪造服务器的响应(Composer,Breakpoint);
4、测试网站的性能(如:Statistics, Replay);
5、解密https的外部会话。因为https本身是一种加密的协议,通过fiddler我们可以进行解密操作;
6、自动化(半自动)收集处理信息(FiddlerScript);
7、提供第三方扩展插件(如:Burp-like Inspector),实现更多需求;
8、编码解码(TextWizard);
过滤请求
弱网测试
代码块如下,可进行编辑
if (m_SimulateModem) {
// Delay sends by 300ms per KB uploaded.
oSession["request-trickle-delay"] = "300";
// Delay receives by 150ms per KB downloaded.
oSession["response-trickle-delay"] = "150";
}
"request-trickle-delay"是上传,"response-trickle-delay"是下载,每上传/下载1KB 要delay 多久…这里的单位是毫秒。顺便一提,正常来讲,3个网段的下载速度是:
2G:150Kbps,折合下载速度15-20K/s;
3G:1-6Mbps,折合下载速度120K/s-600K/s
4G:10-100Mbps,折合下载速度1.5M/s-10M/s
修改完后,要重新启用规则,否则不会生效
截获并伪造客户端请求
1、fiddler可以只设置目标网站的过滤(use filters)
2、设置fiddler的截获规则,选择在请求前截获
3、在目标网站的登录页面准备登录,点击提交,即可关注fiddler中截获的请求
4、可以看到请求被截获
5、修改请求内容,运行请求
可以看到响应的内容被改变
伪造服务器响应
1、设置fiddler截获规则,选择响应后截获
2、在目标网站的登录页面准备登录,点击提交,即可关注fiddler中截获的请求(这步与请求前截获图片一致)
3、在截获的响应里修改内容后运行,可以看到返回给客户端的响应已经被修改
测试网站的性能(如:Statistics, Replay)
1、Statistics
在fiddler中的statistics面板选项,可以清楚的看到每个http请求的响应时间。
在overall elapsed中能看到http响应返回需要的响应时间。
- ClientConnected:表示客户端和fiddler之间建立连接的时间
- ClientBeginRequest:客户端把请求发给fiddler的时间
- GotRequestHeaders:fiddler接收到客户端发送的请求头时间
- ClientDoneRequest:客户端将请求完全发给fiddler的时间
- DetermineGateway:确认网关使用时间
- DNS Lookup:DNS解析时间
- TCP/IPConnect:fiddler与服务器建联时间
- HTTPSHandshake:Fiddler与服务器HTTPS握手使用使用时间
- ServerConnected:Fiddler与服务器建联时间
- FiddlerBegin Request:fiddler把请求发给服务器时间
- ServerGotRequest:服务器接收完fiddler发送的整个请求的时间
- ServerBeginResponse:fiddler接收到服务器发送的首个响应时间
- GotResponseHeaders:fiddler接收到服务器返回第一个响应字节时间
- ServerDoneResponse:服务器发送完毕响应时间(发送到fiddler)
- ClientBeginResponse:fiddler开始发送响应给客户端的时间
- ClientDoneResponse:fiddler发送完响应给客户端的时间
- Overall Elapsed:总的耗时时间
- Response Bytes(by content-type):响应的字节
2、replay
- Reissue Requests:重发选中的请求
- Reissue Unconditinally:无条件重发选中的请求
- Reissue and eidt:重发并编辑,会打开一个加了断点的请求,可以进行请求和响应数据的修改
- Reissue and verify:重发并验证,重新发送请求,并验证其请求结果,会自动加标识
- Reissue Sequentially:重发序列,打开一个数量设置界面,设置需要重发多少次请求
- Reissue from Composer:重发并打开composer界面,可以编辑或发送
- Revisit in IE:在IE上发起这个请求