本文介绍在工作中常用的技能功能,具体得参考最新软件为主,建议可以打开软件对比,具体功能得日常使用中常用才会牢记。
一些常用技能,分享如下(后续继续分享):
1、Fiddler清空Web Sessions列表
方法有下列四种:
QuickExec输入cls
CTRL+X
CTRL+A 再del
工具栏X ->Remove all
2、Fiddler屏蔽Tunnel to 请求
菜单栏Rules->Hide CONNECTS,直接屏蔽Tunnel to
关于http tunnne介绍
对象(包含两部分):
(1)、server端程序;
(2)、client端程序;
如果服务器不支持http tunnel,那么就需要安装http tunnel server端的程序,客户端不支持http tunnel,那么客户端就需要安装http tunnel client程序。
前提:
(1)、在受限制的网络环境中(防火墙、NAT、代理器);
(2)、客户端无法直接访问某些网络;
一般情况下,由于http tunnnel可控性不强,所以,服务器通常会限制”可connect的端口”(一般只开放SSL的443端口)。
原理,以访问百度为例:
因为fiddler作为代理,在访问百度网页时(使用了https协议),满足了connect条件,所以客户端会使用connect方法和目标服务器建立http tunnel,connection建立完成,后续fiddler会转发、接收所有的tcp stream,所以访问 https://www.baidu.com 之前出现了tunnel to www.baidu.com:443。
connect 为了建立http tunnel,connect是http众多方法中的其中一种,它跟post、get、put、options方法是并列的。
3、Fiddler指定抓取程序Any Process
Any Process/pick target...:任何你要监听的进程(程序),精准定位。
当点击上面的Any Process图标并将其移动到指定浏览器页面(或者其他程序界面)后,会单独记录这个页面的通信情况,只能监听一个程序,再点击一次把心图标,则取消监听。
使用后,如下显示,可以通过windwos 的任务管理器看到。
思考:如何用Fiddler指定抓取多个程序Any Process?
4、Fiddler查看QuickExec限制请求
使用bpu www.baidu.com之后,连接是限制请求了,在命令行重新输入bpu会自动匹配。
思考:是否有其他方式查看?
5、Fiddler抓取HTTPS数据
第一步:如果是Fiddler证书有问题,可以通过重置,然后获取。
先打开Tools->Options->HTTPS,勾选上Capture HTTPS CONNECTs和Decrypt HTTPS traffic,再Actions>>Reset All Certificates(后续看提示操作)
第二步:信任根证书HTTPS>>Actions>>Trust Root Certificate
第三步:重启fiddler
第四步:如果还不抓取HTTPS的请求,则可以把Fiddler的证书导出来,直接导入到浏览器去。
第五步:以谷歌浏览器为例,打开浏览器,进入设置页面,点击【隐私和安全】->【安全】->【管理证书】->【受信任的根证书颁发机构】->【导入】。
第六步:找到刚才导出的Fiddler证书,导入到浏览器中去。
第七步:再Actions>>Reset All Certificates,如不行,再重启Fiddler。
思考:证书是如何工作的及原理?电脑端应用程序HTTPS的如何抓包?
6、Fiddler抓WebSocket协议
打开Fiddler,点开菜单栏的Rules > Customize Rules...
在class Handlers中加入以下代码
static function OnWebSocketMessage(oMsg: WebSocketMessage) {
// Log Message to the LOG tab
FiddlerApplication.Log.LogString(oMsg.ToString());
}
保存后就可以在Fiddler右边栏的Log标签里,看到WebSocket的数据包。
7、Fidder增加Web Sessions列表的列
有两种方法,可共大家参考,一种是靠代码,一种是界面操作,分别如下:
(1)、Fiddler增加一列查看接口响应时间Time Taken,class Handlers添加。
打开Fiddler,点开菜单栏的Rules > Customize Rules...
在class Handlers中加入以下代码:
function BeginRequestTime(oS: Session){
if (oS.Timers != null)
{ return oS.Timers.ClientBeginRequest.ToString();
} return String.Empty;
}
public static BindUIColumn("Time Taken")
function CalcTimingCol(oS: Session){
var sResult = String.Empty;
if ((oS.Timers.ServerDoneResponse > oS.Timers.ClientDoneRequest))
{sResult = (oS.Timers.ServerDoneResponse - oS.Timers.ClientDoneRequest).ToString();
} return sResult;
}
重启Fiddler就可以了
(2)、Fiddler增加一列,增加requestmethod,右键添加。
刚开始是默认没有RequestMethod这一列的
添加步骤:
1、在该横栏的空白处右键,如图
2、选择Customize colimns,会跳转如下:
3、出来窗口,在cllection里选择最后的Miscellaneous,在field name处选择 RequestMethod
4、直接点击【Add】,即可添加成功。
8、Fiddler模拟慢网速/弱网
主要有以下几种方法:
方法一:CustomizeRule修改代码
Rules—>CustomizeRule,搜索“request-trickle-delay/m_SimulateModem”(每上传/下载1KB)
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代表每KB的数据被上传时会被延时多少毫秒
response-trickle-delay则对应下载时每KB的数据会被延时多少毫秒
注意:Rules—>Performances—>Simulate Modem Speeds勾选后以上设置才会生效。
方法二:winform表单来为插件开发界面
可以使用c#类库项目,引用fiddler的Inspector的插件对象,继承IAutoTamper类,重载onload方法与AutoTamperRequestBefore方法。
Onload:是fiddler在装载此插件时回调的方法,AutoTamperRequestBefore与fiddlerscript的onbeforerequest回调事件功能相同,都可以在request前请求自定义逻辑。
通过winform表单来为插件开发界面,再通过用户配置的下载速度与上传速度来推算出下载每kb/s与上传每kb/s所delay的时间。
从而调用与fiddlerscirpt同样实现的接口
oSession["request-trickle-delay"] = [delay time];
oSession["response-trickle-delay"] = [delay time];
注意:下载Willow的地址:http://qzonetouch.github.io/commonWidget/willow
方法三:思考:是否有其他的方法?