Fiddler讲解3

摘要:
要浏览更多Fiddler内容:请单击进入Fiddler官方文档阅读目录:1.Fiddler自定义请求:2.Fiddler修改请求:3.减少预期延迟:100个继续标题:4.重命名无效的P3P标头5.创建新请求6.使用自定义匹配规则创建流量7.重播捕获的流量8.修改匹配规则9。导入或导出匹配规则10测试性能XI。抓取序列URL XII。重新发送请求XIII。搜索目标字符串XIV的序列页。创建会话存档Zip(

想要 浏览更多Fiddler内容:请点击进入Fiddler官方文档

阅读目录:

一、Fiddler自定义请求:

二、Fiddler修改请求:

三、减少期望的延迟:100个继续标题:

四、重命名无效的P3P标头

五、创建新请求

六、使用自定义匹配规则创建流量

七、重播捕获的流量

八、修改匹配规则

九、导入或导出匹配规则

十、测试性能

十一、抓取顺序网址

十二、重新发送请求

十三、搜索目标字符串的顺序页面

十四、创建会话存档Zip(SAZ)流量存档

十五、Visual Studio WebTest

十六、导出为默认格式

十七、将会话记录到本地数据库

一、Fiddler自定义请求:

话列表中拖放会话以根据现有请求创建新请求。

模式

Composer有两种模式。在Parsed模式下,您可以使用这些框来构建HTTP(S)请求。在原始模式下,您必须自己键入格式正确的HTTP请求。通常,使用Parsed Mode是您想要的。

选项

“选项”选项卡显示允许您自定义Composer行为的选项。

  • Inspect Session选择新会话并在发出请求时激活Inspectors选项卡。
  • Fix Content-Length Header调整Content-Length请求标头(如果存在)的值以匹配请求主体的大小。
  • 如果可能,Follow Redirects会导致HTTP / 3xx重定向触发新请求。Composer将跟进fiddler.composer.followredirects.max默认重定向。
  • 自动身份验证会导致Fiddler自动响应使用当前用户的Windows凭据使用NTLM或Negotiate协议的HTTP / 401和HTTP / 407挑战。

技巧和窍门

  1. 使用会话列表中的拖放功能,根据以前捕获的请求创建新请求。

  2. 使用RequestURL中的#字符提示输入一系列按顺序编号的URL进行下载。如果在“Start At”值之前输入前导0(零),则所有数字将用前导零填充(如果需要)以达到该宽度。

例如,如果您有URL http://www.example.com/#/?a=#,并输入Start At值为08,End At值为11,则Composer将请求以下URL:

    http://www.example.com/08/?a=08
    http://www.example.com/09/?a=09
    http://www.example.com/10/?a=10
    http://www.example.com/11/?a=11
  1. Shift +单击 “执行”按钮,立即使用Fiddler的检查器中断新的进一步编辑请求

  2. 添加一个虚拟头Fiddler-Encoding:base64,如果它包含任何二进制数据,则使用base64对您的身体进行编码。Fiddler会在将数据传输到服务器之前解码数据。

  3. 如果您希望Fiddler将请求发送到指定的服务器(在这种情况下为http:// targettesthost),同时保留请求中其他位置指定的URL和主机头,请添加虚拟头Fiddler-Host:targettesthost这是一种便捷方法,可以在新会话上设置X-OverrideHost,X-IgnoreCertCNMismatch和X-OverrideGateway标志,在联系指定服务器之前删除虚拟标头。

  4. 单击“上载文件”链接,让作曲家在将一个或多个本地文件发送到服务器时将其注入请求正文。

如果您希望将上载的文件作为base64发送(就像在XML帖子主体中一样),请将令牌base64插入到字符串中。例如:

    <xml><mybody type=binary><@INCLUDE base64 *C:UserslawrenceDesktop	est.bin*@></mybody></xml>

二、Fiddler修改请求:
通过使用FiddlerScript自定义Fiddler规则来修改请求和响应

三、
减少期望的延迟:100个继续标题:

让Fiddler为请求返回100-Continue标头:

  1. 按此规则>自定义规则...

  2. Handlers类中添加以下函数

    static function OnPeekAtRequestHeaders(oSession: Session) {
       if (oSession.HTTPMethodIs("POST") && oSession.oRequest.headers.ExistsAndContains("Expect", "continue"))
       {
         if (null != oSession.oRequest.pipeClient)
         {
           oSession["ui-backcolor"] = "lightyellow";
           oSession.oRequest.headers.Remove("Expect");
           oSession.oRequest.pipeClient.Send(System.Text.Encoding.ASCII.GetBytes("HTTP/1.1 100 Continue
    Server: Fiddler
    
    "));
         }
       }
    }

四、重命名无效的P3P标头

  1. 安装Privacy Scanner Fiddler插件

    Fiddler将获得一个名为Privacy的新顶级菜单

    隐私菜单

  2. 确保隐私>已启用隐私>如果选中无效,重命名P3P标头

现在,如果会话呈现格式错误的P3P语句,则该P3P标头将重命名为Malformed-P3P,以防止浏览器将其解释为P3P 1.0规范建议(例如,忽略未知标记)。

五、创建新请求

Composer允许您制作要发送到服务器的自定义请求。您可以手动创建新请求,也可以从Web会话列表中拖放会话以根据现有请求创建新请求。

模式

Composer有两种模式。在Parsed模式下,您可以使用这些框来构建HTTP(S)请求。在原始模式下,您必须自己键入格式正确的HTTP请求。通常,使用Parsed Mode是您想要的。

选项

“选项”选项卡显示允许您自定义Composer行为的选项。

  • Inspect Session选择新会话并在发出请求时激活Inspectors选项卡。
  • Fix Content-Length Header调整Content-Length请求标头(如果存在)的值以匹配请求主体的大小。
  • 如果可能,Follow Redirects会导致HTTP / 3xx重定向触发新请求。Composer将跟进fiddler.composer.followredirects.max默认重定向。
  • 自动身份验证会导致Fiddler自动响应使用当前用户的Windows凭据使用NTLM或Negotiate协议的HTTP / 401和HTTP / 407挑战。

技巧和窍门

  1. 使用会话列表中的拖放功能,根据以前捕获的请求创建新请求。

  2. 使用RequestURL中的#字符提示输入一系列按顺序编号的URL进行下载。如果在“Start At”值之前输入前导0(零),则所有数字将用前导零填充(如果需要)以达到该宽度。

例如,如果您有URL http://www.example.com/#/?a=#,并输入Start At值为08,End At值为11,则Composer将请求以下URL:

    http://www.example.com/08/?a=08
    http://www.example.com/09/?a=09
    http://www.example.com/10/?a=10
    http://www.example.com/11/?a=11
  1. Shift +单击 “执行”按钮,立即使用Fiddler的检查器中断新的进一步编辑请求

  2. 添加一个虚拟头Fiddler-Encoding:base64,如果它包含任何二进制数据,则使用base64对您的身体进行编码。Fiddler会在将数据传输到服务器之前解码数据。

  3. 如果您希望Fiddler将请求发送到指定的服务器(在这种情况下为http:// targettesthost),同时保留请求中其他位置指定的URL和主机头,请添加虚拟头Fiddler-Host:targettesthost这是一种便捷方法,可以在新会话上设置X-OverrideHost,X-IgnoreCertCNMismatch和X-OverrideGateway标志,在联系指定服务器之前删除虚拟标头。

  4. 单击“上载文件”链接,让作曲家在将一个或多个本地文件发送到服务器时将其注入请求正文。

如果您希望将上载的文件作为base64发送(就像在XML帖子主体中一样),请将令牌base64插入到字符串中。例如:

    <xml><mybody type=binary><@INCLUDE base64 *C:UserslawrenceDesktop	est.bin*@></mybody></xml>

六、
使用自定义匹配规则创建流量

启用自动应答器

在“ 自动回复”选项卡中,选中“ 启用自动回复”

启用自动回复

撰写自动回复规则

  • 在“ 自动回复”选项卡的底部,在“ 规则编辑器”下

    1. 在顶部字段中键入匹配规则

    2. 在底部字段中键入操作字符串

    规则编辑器

启用自动应答被选中,将提琴手如果捕获的请求URI的匹配规则进行匹配的操作

七、重播捕获的流量

启用自动应答器

在“ 自动回复”选项卡中,选中“ 启用自动回复”

启用自动回复

从Web会话列表创建匹配规则

要重放捕获的对匹配请求的响应,而不是将请求发送到目标服务器:

  1. Web会话列表中选择会话按Control键并单击以选择多个会话。

    网络会话列表

  2. 单击右侧的“ 自动回复”选项卡。

    自动回复标签

  3. 单击并将所选Web会话从Web会话列表拖动自动回复选项卡中的规则列表

    拖动Web会话

现在,规则列表将填充规则,这些规则响应捕获的请求以及相应的捕获响应。

八、修改匹配规则

编辑规则

  1. 自动回复规则集中选择规则。

    选择规则

  2. 在“ 自动回复”选项卡的底部,在“ 规则编辑器”下

    1. 在顶部字段中键入匹配规则

    2. 在底部字段中键入操作字符串

    规则编辑器

选择活动规则

  • 要启用或禁用规则,请单击规则旁边的复选框。

    启用或禁用规则

设置规则优先级

要更改规则集中规则的优先级,请执行以下操作:

  1. Autoresponder rulset中选择规则

    选择规则

  2. 在规则集中向上或向下移动规则:

  • 单击并将规则拖动到规则集中的正确位置。

  • +可在列表中向上移动规则或按-在列表中向下移动规则。

九、导入或导出匹配规则

导入匹配的规则集

  • 从“ 自动回复”选项卡:

    1. 单击“ 导入”按钮。

    2. 选择.saz.farx文件。

    导入规则集

  • Windows资源管理器

    1. 选择.saz.farx文件。

    2. 将所选文件从Windows资源管理器拖放到“ 自动回复”选项卡。

现在,自动应答器规则集将填充将重放存档中的会话的规则。

导出匹配的规则集

    1. 在“ 自动回复”选项卡中,单击“ 保存”按钮。

    2. 右键单击规则集,然后选择“ 全部导出” ..

      保存规则集

十、测试性能

使用FiddlerScript模拟流量并显示性能结果

十一、抓取顺序网址

使用Global范围向Fiddler添加规则,如下所示:

    public static ToolsAction("Crawl Sequential URLs") 
    function doCrawl(){ 
      var sBase: String;
      var sInt: String;

      sBase = FiddlerObject.prompt("Enter base URL with ## in place of the start integer", "http://www.example.com/img##.jpg");
      sInt = FiddlerObject.prompt("Start At", "1");
      var iFirst = int.Parse(sInt);
      sInt = FiddlerObject.prompt("End At", "12");
      var iLast = int.Parse(sInt);

      for (var x=iFirst; x<=iLast; x++)
      {
        //Replace 's' with your HTTP Request. Note:  is a special character in JScript
        // If you want to represent a backslash in a string constant, double it like \ 
        var s = "GET " + sBase.Replace("##", x.ToString()) + " HTTP/1.0

"; 
        var b=false;
        while(!b){
        try{
          FiddlerObject.utilIssueRequest(s);
          b=true;
        }
        catch(e){
          var iT = Environment.TickCount + 10000;
          FiddlerObject.StatusText = "Waiting 10 sec because we have too many requests outstanding...";
          while (iT > Environment.TickCount){ Application.DoEvents(); }
          } 
        }
      }
    }


十二、
重新发送请求

您可以直接从“ 会话列表”重新发送请求,也可以保存请求以在Composer中重新发送

从会话列表重新发送请求

  1. 在“会话列表”中选择一个或多个会话。

  2. R或右键单击会话,然后单击“ 重播”>“重发请求”

    重播菜单

从Composer重新发送会话

  1. 单击Composer选项卡。

  2. 在Composer选项卡中,单击Scratchpad选项卡。

  3. 单击并从“会话列表”中拖动一个或多个会话。

    便笺

  4. 在Scratchpad中三击会话内容以选择整个会话内容。

    选定的会议

  5. 单击“ 执行”以重新发出请求。

    执行按钮


要在一系列连续命名的HTML页面上搜索目标字符串(例如,从1.htm,2.htm,3.htm,4.htm等查找包含“TargetString”的第一页),请添加规则给提琴手如下:

  1. 使用Global范围向Fiddler添加规则以创建新菜单项,如下所示:

    public static ToolsAction("Find page containing search string") 
    function doGrab(){ 
      var s = "GET /gallery/image1.htm HTTP/1.1
    Host: www.example.com
    X-My-Num: 1
    
    "; 
      try{ 
        FiddlerObject.utilIssueRequest(s); 
      } 
      catch(e){ 
        MessageBox.Show("send failed" + e.ToString()); 
      } 
    }

    这将生成第一个请求。注意:因为utilIssueRequest调用是异步的,所以不直接获得响应。

  2. OnBeforeResponse函数中向Fiddler添加规则,如下所示:

    if (oSession.oRequest.headers.Exists("X-My-Num")){ 
      // This is a response to my Grab code... 
      if (oSession.utilFindInResponse("targetstring", false) > -1){ 
       // If the index of the target string is >-1, we found the search string...  
       MessageBox.Show("Found target string!");
      } 
      else 
      { 
      //didn't find the target string.  increment the number. 
      var n = int.parse(oSession.oRequest["X-My-Num"]); 
      n++; 
      var s = "GET /gallery/image" + n.ToString() + ".htm HTTP/1.1
    Host: http://www.example.com
    X-My-Num: "+ n.ToString() + "
    
    "; 
      try{ 
        // Make a recursive HTTP request for the next item.
        FiddlerObject.utilIssueRequest(s); 
      } 
      catch(e){ 
         MessageBox.Show("send failed" + e.ToString()); 
      } 
      } 
    }
 
十四、创建会话存档Zip(SAZ)流量存档
  1. 开始提琴手。

  2. 使用您的客户端或浏览器生成一些HTTP / HTTPS流量

  3. 单击文件>保存>所有会话...

  4. 将流量保存到.SAZ文件。

十五、Visual Studio WebTest

Fiddler2包括捕获Web流量(包括AJAX请求)以便以后使用Visual Studio Web Test产品进行回放的功能。

保存WebTest

  1. 从Web应用程序捕获流量
  2. 单击文件>导出会话>所有会话
  3. 单击Visual Studio WebTest。

重播WebTest

  • 注意:您必须安装Visual Studio 2005或更高版本的Team System产品才能加载.WebTest文件。

要重播WebTest:

  1. 单击文件>新建项目
  2. 展开Visual C#Visual Basic
  3. 单击“ 测试”节点。
  4. 单击模板窗格中的“ 测试项目 ”。

解决问题

有关如何解决WebTests问题的信息,请参阅https://blogs.msdn.com/slumley/pages/how-to-debug-a-web-test.aspx

十六、导出为默认格式

要将流量导出到WCAT脚本VS Web测试脚本Meddler脚本HTML5 AppCache清单HTTP存档格式1.1HTTP存档格式1.2原始文件转储

  1. 单击文件>导出会话

  2. 单击“ 所有会话”或“ 选定会话”

  3. 从下拉菜单中选择导出格式。

    选择导出格式

  4. 单击“ 下一步”以选择导出文件位置。

  5. 如果导出到HTML5 AppCache Manifest:检查您希望从Manifest的CACHE部分中排除的任何资源。这些将添加到Manifest的NETWORK部分。

    调整AppCache清单

  6. 要指定基本URL并将URL转换为相对于此URL,请在“ 基本URL:”字段中键入此URL 

    基本URL

  7. 单击保存AppCache清单出现在文本编辑器中。

导入默认格式

要从HTTP Archive JSONHTTP Archive XML(从[IE9 Developer Tools网络选项卡] [12]导出)或Test Studio Load Test导入流量

  1. 点击文件>导入会话...

  2. 从下拉菜单中选择导入格式。

    选择导入格式

  3. 单击下一步

创建自定义导入程序和导出程序

使用Fiddler扩展创建自定义导入器和导出

十七、将会话记录到本地数据库

  1. 向Fiddler添加规则以创建新菜单项,如下所示:

    // Log the currently selected sessions in the list to a database.
    // Note: The DB must already exist and you must have permissions to write to it.
    public static ToolsAction("Log Selected Sessions") 
    function DoLogSessions(oSessions: Fiddler.Session[]){
    if (null == oSessions || oSessions.Length < 1){
      MessageBox.Show("Please select some sessions first!");
      return;
    }
    var strMDB = "C:\log.mdb";
    var cnn = null;
    var sdr = null;
    var cmd = null;
    try
    {
      cnn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strMDB);
      cnn.Open();
      cmd = new OleDbCommand();
      cmd.Connection = cnn;
    
      for (var x = 0; x < oSessions.Length; x++){
        var strSQL = "INSERT into tblSessions ([ResponseCode],[URL]) Values (" + 
        oSessions[x].responseCode + ", '" + oSessions[x].url + "')";
        cmd.CommandText = strSQL;
        cmd.ExecuteNonQuery();
      }
    }
    catch (ex){
      MessageBox.Show(ex);
    }
    finally
    {
      if (cnn != null ){
        cnn.Close();
      }
    }
    }
  2. 列出规则脚本顶部的新导入,如下所示:

    import System.Data.OleDb;
  • 注意:此示例依赖于OLEDB 4.0,它不适用于64位进程。或者:

免责声明:文章转载自《Fiddler讲解3》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇DeepSpeed超大规模模型训练工具PHP mkdir()无写权限的问题解决方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

C#中将字符串转成 Base64 编码(小技巧)

/// <summary>/// /// </summary>/// <param name="Str"></param>/// <returns></returns>public string ToBase64Str(string Str){byte[] b = System.Te...

WEB开发中的字符集和编码

引言 我相信很多人在初接触编程时,都被字符集狠狠地虐过,特别是数据库的中文乱码问题,那么乱码是怎么产生的呢? 我们都知道计算机是以二进制存储和运行的,那么它是怎么把二进制数据转换为各种文字的呢? 还有我们常用的各种字符集,常用的编码转换,都是怎么进行的呢? 本博文所写的内容不是技术干货,只是对我们常用的字符集和编码的一个小总结,小科普。我相信读完本文,您应...

Fiddler安卓抓包详细教程

电脑端抓包一般图方便就用浏览器自带的,最近需要分析安卓一个APP的HTTP请求,尝试了wireshark(功能太强大了,然而我并不会用),tcpdump(用起来还是比较麻烦),网上搜了一下,还是使用Fiddler,Fiddler使用起来比较方便,但是只能抓http和https的包,不能抓使用socket的流量包。 一、安装与配置 从https://www....

BUUCTF-数据包中的线索 1

打开题目里面一个pcapng的文件,于是我们拖进wireshark流量分析一波  发现有http的流量,于是我们过滤http  让后追踪http,然后发现base64的编码, 于是我们看到了base64编码    于是我们拿着base64去解密成图片,https://the-x.cn/base64   然后我们将图片下载下来,得到flag...

[Swift]扩展String类:Base64的编码和解码

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)➤GitHub地址:https://github.com/strengthen/LeetCode➤原文地址:https://w...

fiddler实现手机抓包及手机安装证书报错“无法安装该证书 因为无法读取该证书文件”解决方法

 Fiddler是一个轻量级的http抓包工具,且有良好的用户界面,实用强大易上手。通过设置代理接受处理所有的http请求和响应,可以很轻松的对手机上的安卓应用进行抓包。 电脑最好是笔记本,这样能和手机保持统一局域网内;其他不多说,直接说步骤了。 一.对PC(笔记本)参数进行配置    1. 配置fiddler允许监听到https(fiddler默认只抓取...