zoukankan      html  css  js  c++  java
  • Fidder学习基础(二)

    一、 巧用代理抓包。

        

       首页,需设置Tools——>Fiddler Options——>Connectons,维护代理端口及允许其他设备连接。

       这里,需要注意的是端口配置不能重复,抓包代理设置时,要同这个一致的。

    1. 浏览器:当fiddler启用就自动开启代理了,故不描述。

    2. PC端app:

        以淘宝千牛PC为例,若需要抓他的插件的包,怎么设置

       找到应用的设置——>网络——>启用代理,如图所示服务器、端口要与你抓包所配置的一致哦。一般启用代理后,该app需重启。

     注:这里服务器127.0.0.1是因为我这个是抓本机的,所以地址是这个。

      怎么知道代理的IP地址呢,可以直接看代理机器获取的IP,也可以看fiddler,如图所示,看Online信息的地址即可。

      

    3. 移动端:(可以参考http://www.cnblogs.com/TankXiao/p/3063871.html)

        类似pc,移动端app代理时,需要开启电脑无线wifi。这样手机才可以链接到电脑的代理。

        开启无线wifi,然后开启fiddler。

        然后呢,手机端无线链接到开启的wifi,然后设置无线的HTTP代理。如图所示

       

     注:配置一个后就可以通过修改电脑端hosts文件来配置程序位置了,很是方便,这样也跨过越狱修改手机hosts来进行测试。


    二、以上的仅抓取HTTP的设置,如果需要抓取HTTPS。除了上述的步骤,还需要配置。

    1. 配置Fiddler,Tools—>Fiddler Options,如图

    配置Decrypt HTTPS traffic,选中后就可以截获HTTPS请求了(注意:配置完要重启Fiddler哦)

    2. iphone安装证书

       为了能抓取iphone手机的HTTPS请求,还得安装证书(HTTP是不需要的),其他配置同上,就是多个证书的安装。

     1)fiddler配置、无线配置代理,同上步骤

     2)使用safari,打开你的代理的地址http://192.168.*.*:8888(地址就是你配置无线代理的IP与端口,当然反正是fiddler所在的地址及端口即ok,方法也在上面介绍过了)

        

      如上图所示,选择FiddlerRoot certificate安装证书即可。

    经过以上配置后,再来试试抓取iPhone手机的https包吧。


    三、修改Request和Response信息

         学习的是FiddlerScript对OnBeforeRequest和OnBeforeResponse2个函数进行修改。

    1、添加请求头Header

    oSession.oRequest["NewHeaderName"] = "New header value";

     

    2、删除Response的Header

    oSession.oResponse.headers.Remove("Set-Cookie");

     

    3、将请求从一个页面转发到同一Server上的另一页面

    if (oSession.PathAndQuery=="/hello/hello.html") {

          oSession.PathAndQuery="/hello/index.html";

        }

    注意:oSession.PathAndQuery的值为fiddler中session列表中的Url:

    上面的例子,拦截请求地址为/hello/hello.html的请求,并将其转发到相同Server的/hello/index.html

     

    4、将请求转发到相同端口号的不同服务器(修改请求的Host)

    <pre name="code" class="javascript"> if(oSession.HostnameIs("www.baidu.com")){

          oSession.hostname = "www.sina.com.cn";

    }

    这个例子是将发送到百度的请求转发到新浪,则会提示页面不存在。这里只是改变了host,并不改变后面的地址,因此, 如果在新浪上不存在相应的页面。

     

    如果我访问的是如下地址:http://www.baidu.com/link?url=CQuVpjo9u9UQADcstwECPEmrziPMk5u5H9PlRN2TbWLkKZaxafVER2X8OEYzovr-yasX2Fwcgj0NANBtKVj0gN78jNJ3bXTmIsTeBk7hXem

    则结果如下:(该页面实际是存在的,是百度搜索出来的结果页面,被fiddler转发到新浪,但是新浪上不存的此页面)

     

    5、将请求转发到不同端口号,不同Server

    if (oSession.host=="192.168.0.70:8080") {

          oSession.host="192.168.0.69:8020";

        }

    这个例子是将发送到192.168.0.70:8080的请求转发到192.168.0.69:8020,这里只是改变host,并不改变后面的请求地址。例如,做以上的规则后,我请求的是:

    http://192.168.0.70:8080/hello/hello.html

    而实际我项目部署到的是:192.168.0.69:8020

     

    6、将所有请求从一个服务器转发到另一个服务器,包括Https

    // Redirect traffic, including HTTPS tunnels

        if (oSession.HTTPMethodIs("CONNECT") && (oSession.PathAndQuery == "www.example.com:443")) {

            oSession.PathAndQuery = "beta.example.com:443";

        }

     

        if (oSession.HostnameIs("www.example.com")) oSession.hostname = "beta.example.com";

    暂总结记录这些,后期补充

  • 相关阅读:
    eclipse中的任务标记(TODO、FIXME、XXX)
    编码规范参考
    MVC,MVP 和 MVVM
    Android的两种事件处理机制
    在Eclipse中自定义类似syso的快捷代码模板
    Android
    eclipse使用tips-Toggle Mark Occurrences 颜色更改
    从 Eclipse 迁移至 Android Studio
    Java的位运算符详解实例——与(&)、非(~)、或(|)、异或(^)
    [POJ 2976]Dropping tests(0-1分数规划)
  • 原文地址:https://www.cnblogs.com/testwang/p/5643453.html
Copyright © 2011-2022 走看看