精华内容
下载资源
问答
  • Fiddler抓包Fiddler抓包工具使用
    千次阅读
    2022-03-15 16:34:55

    前言

    心态好了,就没那么累了。心情好了,所见皆是明媚风景。

    “一时解决不了的问题,那就利用这个契机,看清自己的局限性,对自己进行一场拨乱反正。”正如老话所说,一念放下,万般自在。如果你正被烦心事扰乱心神,不妨学会断舍离。断掉胡思乱想,社区垃圾情绪,离开负面能量。心态好了,就没那么累了。心情好了,所见皆是明媚风景。


    Fiddler 下载

    fiddler 是一个很好的抓包工具,默认是抓 http请求 的,对于 pc上的https请求,会提示网页不安全,这时候需要在浏览器上安装证书。

    1. fiddler 抓包时候,打开百度网页:www.baidu.com

    2. 提示:网页不安全

    学习接口测试必学 http协议,如果直接讲协议,我估计小伙伴们更懵,为了更好的理解协议,先从抓包开始。

    结合抓包工具讲 http协议 更容易学一些。

    1. 启动 Fiddler ,打开菜单栏中的 Tools > Fiddler Options,打开 Fiddler Options”对话框。(我的是莫名其妙的就汉化了)如果汉化了就是,打开菜单栏的 工具>选项,打开“选项”对话框。

    2. “Fiddler Options”对话框切换到 “Connections”选项卡 ,然后勾选 “Allow romote computers to connect” 后面的复选框,然后点击 “OK” 按钮。如果汉化了就是,打开”选项”对话框,打开“连接”选项打开对话框,然后勾选“允许远程计算机连接”后面的复选框。

    3. 在本机命令行输入:ipconfig,找到本机的ip地址。

    4. 打开 android设备的“设置”->“WLAN”,找到你要连接的网络,在上面长按,然后选择“修改网络”,弹出网络设置对话框,然后勾选“显示高级选项”

    5. “代理” 后面的输入框选择 “手动”在“代理服务器主机名”后面的输入框输入电脑的ip地址,在“代理服务器端口”后面的输入框输入8888,然后点击“保存”按钮

    6. 然后启动 android设备 中的浏览器,访问百度的首页,在 fiddler 中可以看到完成的请求和响应数据。

    7. 配置可以 抓取https请求


    导出证书

    1. 点右上角 Actions(操作)按钮

    2. 选第二个选项,导出到桌面,此时桌面上会多一个文件:FiddlerRoot.cer,如图。


    导入到 firefox 浏览器

    1. 打开右上角浏览器设置》选项》高级》证书》查看证书》证书机构》导入

    2. 勾选文件导入

    3. 打开文件后,会弹出个框,勾选三个选项就完成操作啦。


    证书导出失败问题

    在点 Actions(操作)时候出现Export Failed:The root certificate could not be located.最近有很多小伙伴在fiddler导出证书的时候,遇到无法导出的问题,收集了几种解决办法,供参考

    一、证书无法导出

    1. 在点 Actions(操作)时候出现Export Failed:The root certificate could not be located.

    二、无法导出问题解决方案

    1. 首先确保安装的 Fiddler 是较新的版本,先关闭 fiddler

    2. 下载并安装Fiddler证书生成器

    下载地址:www.telerik.com/docs/defaul…

    1. Tools>Fiddler Options

    2. 勾选 Capture HTTPS traffic

    3. Actions按钮,Export Root Certificate Desktop按钮 导出到桌面

    三、删除证书

    1. 有些小伙伴可能之前装过一些fiddler证书,安装的姿势不对,导致新的证书不起作用,这时候需要先删掉之前的证书了

      • 方法一:从fiddler里打开证书管理界面
      • 方法二、从文件管理器输入:certmgr.msc并回车
    2. 搜索之前安装的fiddler证书,找到之后全部删除

    3. 重新下载证书生成器:www.telerik.com/docs/defaul… 一路傻瓜式安装,遇到警告什么的直接忽略就行。

    4. 安装好证书后,按照1.1章节Fiddler抓包1-抓firefox上https请求的浏览器导入证书就行了(弄好之后,重启电脑就OK了)


    如何找出需要的请求

    1. 打开fiddler后,左边会话框区域刷刷刷的很多请求,那么如何有效的找出自己需要的请求呢?

    2. 首先第一步:清屏(cls),在左下角命令行输入cls,清空屏幕(清屏也可以使用快捷键Ctrl+X)

    3. 第二步在浏览器输入url地址的时候,记住这个地址,如打开博客首页:juejin.cn/user/862483… 在点击登录按钮的时候,不要做多余的操作了,然后查看fiddler会话框,这时候有好几个请求。


    getpost 请求参数区别

    1. 关于 getpost 的功能上区别就不说了,大家自己查资料,这里主要从 fiddler抓包 的层面查看请求参数上的区别
    2. get请求的Raw参数查看,主要分三部分:
    • 第1部分是请求 url地址
    • 第2部分是 host地址
    • 第3部分是 请求头部信息header

    🎉总结:

    • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!


    最后基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源在下方公众号免费获取~

    更多相关内容
  • 本文实例讲述了PHP配合fiddler抓包抓取微信指数小程序数据的实现方法。分享给大家供大家参考,具体如下: 这两天研究了下微信指数这个东西。要抓取呢,按照一般思路的话,那就是使用fiddler抓取手机包,然后进行分析...
  • fiddler抓包教程

    2018-09-20 11:48:24
    Fiddler是强大的抓包工具,它是以web代理服务器的形式进行工作的
  • fiddler 抓包工具

    2017-11-10 07:53:19
    fidder 抓包工具,可用获得由浏览器发送的post请求的数据信息
  • fiddler抓包工具使用说明, 包含了fiddler的安装和抓包说明,用于移动开发和web开发
  • 至此差不多可以抓包了 下面开始做题 打开词达人,左侧会出现下图的理解了解(使用前最好把其他软件关了) 双击点开他 然后开始答题, 做完一题后,不要忙着点继续,(因为做完一题后,下一题的链接也会出现再下方...
  • 主要介绍了fiddler抓包小技巧之自动保存抓包数据的实现方法,较为详细的分析了fiddler自动保存抓包数据及根据需求过滤相关操作技巧,需要的朋友可以参考下
  • 主要介绍了PHP+fiddler抓包采集微信文章阅读数点赞数的思路,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
  • 测试前请修改 CaptureConfiguration.CaptureDomain = "www.baidu.com";//捕捉域
  • 资料包含视频+文档+工具,主要目的使用fiddler抓包工具实现购物商品的价格进行幕改来进行支付
  • APP、Web协议分析抓取工具-fiddler使用详解。
  • 在利用网络抓包工具Fiddler对通讯数据进行抓包时,所有浏览器端请求和服务器端响应均成功地被记录下来,抓包过程中IE浏览器也没有出现异常退出的情况。 因此,我们完全可以利用抓包工具Fiddler抓取得到的数据包,将...
  • 使用fiddler抓包,然后导出到jmeter中
  • chrome浏览器驱动+fiddler抓包套餐 配合各种版本的chrome浏览器,各种语言支持
  • 亲测好用,挺不错的资源,大家快来下载吧!挺有用的!需要的话可以来下载哦!资料包含视频+文档+工具,主要目的使用fiddler抓包工具实现购物商品的价格进行幕改来进行支付
  • Fiddler 抓包

    2020-11-05 15:57:42
    Fiddler 抓包工具 用于详细分析接口响应与请求并测试接口 能抓到意想不到的东西 抓的东西非常全面
  • 对于想抓取HTTPS的测试初学者来说,常用的工具就是fiddler。可是在初学时一步步按着网上的帖子结果还是出问题。 所以我们来从头捋一遍,再列出经常会出现的问题。
  • fiddler抓包

    2019-03-03 15:19:37
    里面包含抓包的软件,可以进行数据的分析和采集,对于大数据。
  • fiddler抖音抓包.zip

    2021-07-20 14:40:32
    抖音抓包-设备注册-设备激活-参数对比分析动态参数
  • 为什么要先学fiddler?学习接口测试必学http协议,如果直接先讲协议,我估计小伙伴们更懵,为了更好的理解协议,先从...1. Fiddler 抓包简介 1) Fiddler字段说明 2). Statistics 请求的性能数据分析 3). In...

         为什么要先学fiddler?学习接口测试必学http协议,如果直接先讲协议,我估计小伙伴们更懵,为了更好的理解协议,先从抓包开始。结合抓包工具讲http协议更容易学一些。

        抓firefox上https请求fiddler是一个很好的抓包工具,默认是抓http请求的,对于pc上的https请求,会提示网页不安全,这时候需要在浏览器上安装证书。

    目录

    序章:

    1. Fiddler 抓包简介

    1) Fiddler字段说明

    2). Statistics 请求的性能数据分析

    3). Inspectors 查看数据内容

    4). AutoResponder 允许拦截指定规则的请求

    5). Composer 自定义请求发送服务器

    6). Filters 请求过滤规则

    2. Fiddler 设置解密HTTPS的网络数据

    3. Fiddler 抓取Iphone / Android数据包

    4. Fiddler 内置命令与断点


    序章:

    Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获、重发、编辑、转存等操作。也可以用来检测网络安全。反正好处多多,举之不尽呀!当年学习的时候也蛮费劲,一些蛮实用隐藏的小功能用了之后就忘记了,每次去网站上找也很麻烦,所以搜集各大网络的资料,总结了一些常用的功能。

    Fiddler 下载地址 :Download Fiddler Web Debugging Tool for Free by Telerik

    Fiddler 离线下载地址:百度网盘 请输入提取码 密码:5skw

    下载Fiddler要FQ,我费了好大得劲才翻出去下载到…

    win8之后用“Fiddler for .NET4”而win8之前用“Fiidler for .NET2”比较好

    Fiddler抓包
    Fiddler抓包

    1. Fiddler 抓包简介

    Fiddler是通过改写HTTP代理,让数据从它那通过,来监控并且截取到数据。当然Fiddler很屌,在打开它的那一瞬间,它就已经设置好了浏览器的代理了。当你关闭的时候,它又帮你把代理还原了,是不是很贴心。。。

    Fiddler抓包
    Fiddler抓包

     

    1) Fiddler字段说明

    Fiddler想要抓到数据包,要确保Capture Traffic是开启,在File –> Capture Traffic。开启后再左下角会有显示,当然也可以直接点击左下角的图标来关闭/开启抓包功能。

    Fiddler抓包
    Fiddler抓包

     

     Fiddler开始工作了,抓到的数据包就会显示在列表里面,下面总结了这些都是什么意思:

    Fiddler抓包教程
    Fiddler抓包教程

     

     

    名称

    含义

    #

    抓取HTTP Request的顺序,从1开始,以此递增

    Result

    HTTP状态码

    Protocol

    请求使用的协议,如HTTP/HTTPS/FTP等

    Host

    请求地址的主机名

    URL

    请求资源的位置

    Body

    该请求的大小

    Caching

    请求的缓存过期时间或者缓存控制值

    Content-Type

    请求响应的类型

    Process

    发送此请求的进程:进程ID

    Comments

    允许用户为此回话添加备注

    Custom

    允许用户设置自定义值

    图标

    含义

    clip_image001[13]

    请求已经发往服务器

    clip_image002[4]

    已从服务器下载响应结果

    clip_image003[4]

    请求从断点处暂停

    clip_image004[4]

    响应从断点处暂停

    clip_image005[4]

    请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body)

    clip_image006[4]

    请求使用 HTTP 的 POST 方法

    clip_image007[4]

    请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道

    clip_image008[4]

    响应是 HTML 格式

    clip_image009[4]

    响应是一张图片

    clip_image010[4]

    响应是脚本格式

    clip_image011[4]

    响应是 CSS 格式

    clip_image012[4]

    响应是 XML 格式

    clip_image013[4]

    响应是 JSON 格式

    clip_image014[4]

    响应是一个音频文件

    clip_image015[4]

    响应是一个视频文件

    clip_image016[4]

    响应是一个 SilverLight

    clip_image017[4]

    响应是一个 FLASH

    clip_image018[4]

    响应是一个字体

    clip_image019[4]

    普通响应成功

    clip_image020[4]

    响应是 HTTP/300、301、302、303 或 307 重定向

    clip_image021[4]

    响应是 HTTP/304(无变更):使用缓存文件

    clip_image022[4]

    响应需要客户端证书验证

    clip_image023[4]

    服务端错误

    clip_image0244

    会话被客户端、Fiddler 或者服务端终止

    2). Statistics 请求的性能数据分析

    好了。左边看完了,现在可以看右边了

    随意点击一个请求,就可以看到Statistics关于HTTP请求的性能以及数据分析了(不可能安装好了Fiddler一条请求都没有…):

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

    3). Inspectors 查看数据内容

    Inspectors是用于查看会话的内容,上半部分是请求的内容,下半部分是响应的内容:

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

    4). AutoResponder 允许拦截指定规则的请求

    AutoResponder允许你拦截指定规则的求情,并返回本地资源或Fiddler资源,从而代替服务器响应。

    看下图5步,我将“baidu”这个关键字与我电脑“f:\Users\YukiO\Pictures\boy.jpeg”这张图片绑定了,点击Save保存后勾选Enable rules,再访问baidu,就会被劫持。

    这个玩意有很多匹配规则,如:

    1. 字符串匹配(默认):只要包含指定字符串(不区分大小写),全部认为是匹配

    字符串匹配(XXX)是否匹配
    http://www.XXX.com匹配
    http://pan.XXX.com匹配
    http://tieba.XXX.com匹配

    2. 正则表达式匹配:以“regex:”开头,使用正则表达式来匹配,这个是区分大小写的

    字符串匹配(regex:.+.(jpg | gif | bmp ) $)是否匹配
    http://bbs.XX.com/Path1/query=foo.bmp&bar不匹配
    http://bbs.XX.com/Path1/query=example.gif匹配
    http://bbs.XX.com/Path1/query=example.bmp匹配
    http://bbs.XX.com/Path1/query=example.Gif不匹配

     

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

      

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

    5). Composer 自定义请求发送服务器

    Composer允许自定义请求发送到

    服务器,可以手动创建一个新的请求,也可以在会话表中,拖拽一个现有的请求

    Parsed模式下你只需要提供简单的URLS地址即可(如下图,也可以在RequestBody定制一些属性,如模拟浏览器User-Agent)

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

    6). Filters 请求过滤规则

    Fiters 是过滤请求用的,左边的窗口不断的更新,当你想看你系统的请求的时候,你刷新一下浏览器,一大片不知道哪来请求,看着碍眼,它还一直刷新你的屏幕。这个时候通过过滤规则来过滤掉那些不想看到的请求。

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

     勾选左上角的Use Filters开启过滤器,这里有两个最常用的过滤条件:Zone和Host

    1、Zone 指定只显示内网(Intranet)或互联网(Internet)的内容:

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程

     

     2、Host 指定显示某个域名下的会话:

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程

     

     如果框框为黄色(如图),表示修改未生效,点击红圈里的文字即可

    7). Timeline 请求响应时间

    在左侧会话窗口点击一个或多个(同时按下 Ctrl 键),Timeline 便会显示指定内容从服务端传输到客户端的时间:

    2. Fiddler 设置解密HTTPS的网络数据

    Fiddler可以通过伪造CA证书来欺骗浏览器和服务器。Fiddler是个很会装逼的好东西,大概原理就是在浏览器面前Fiddler伪装成一个HTTPS服务器,而在真正的HTTPS服务器面前Fiddler又装成浏览器,从而实现解密HTTPS数据包的目的。

    解密HTTPS需要手动开启,依次点击:

    1. Tools –> Fiddler Options –>  HTTPS

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

    2. 勾选Decrypt HTTPS Traffic

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

    3. 点击OK

     

    3. Fiddler 抓取Iphone / Android数据包

    想要Fiddler抓取移动端设备的数据包,其实很简单,先来说说移动设备怎么去访问网络,看了下面这张图,就明白了。

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     可以看得出,移动端的数据包,都是要走wifi出去,所以我们可以把自己的电脑开启热点,将手机连上电脑,Fiddler开启代理后,让这些数据通过Fiddler,Fiddler就可以抓到这些包,然后发给路由器(如图):

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

     1. 打开Wifi热点,让手机连上(我这里用的360wifi,其实随意一个都行)

     

    2. 打开Fidder,点击菜单栏中的 [Tools] –> [Fiddler Options]

     

    3. 点击 [Connections] ,设置代理端口是8888, 勾选 Allow remote computers to connect, 点击OK

     

    4. 这时在 Fiddler 可以看到自己本机无线网卡的IP了(要是没有的话,重启Fiddler,或者可以在cmd中ipconfig找到自己的网卡IP)

     

    5. 在手机端连接PC的wifi,并且设置代理IP与端口(代理IP就是上图的IP,端口是Fiddler的代理端口8888)

     

    6. 访问网页输入代理IP和端口,下载Fiddler的证书,点击下图FiddlerRoot certificate

     【注意】:如果打开浏览器碰到类似下面的报错,请打开Fiddler的证书解密模式(Fiddler 设置解密HTTPS的网络数据)

    No root certificate was found. Have you enabled HTTPS traffic decryption in Fiddler yet?

     

     

    7. 安装完了证书,可以用手机访问应用,就可以看到截取到的数据包了。(下图选中是布卡漫画的数据包,下面还有QQ邮箱的)

     

    4. Fiddler 内置命令与断点

    Fiddler还有一个藏的很深的命令框,就是眼前,我用了几年的Fiddler都没有发现它,偶尔在别人的文章发现还有这个小功能,还蛮好用的,整理下记录在这里。

    FIddler断点功能就是将请求截获下来,但是不发送,这个时候你可以干很多事情,比如说,把包改了,再发送给服务器君。还有balabala一大堆的事情可以做,就不举例子了。

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

    命令

    对应请求项

    介绍

    示例

    ?

    All

    问号后边跟一个字符串,可以匹配出包含这个字符串的请求

    ?google

    >

    Body

    大于号后面跟一个数字,可以匹配出请求大小,大于这个数字请求

    >1000

    <

    Body

    小于号跟大于号相反,匹配出请求大小,小于这个数字的请求

    <100

    =

    Result

    等于号后面跟数字,可以匹配HTTP返回码

    =200

    @

    Host

    @后面跟Host,可以匹配域名

    @www.baidu.com

    select

    Content-Type

    select后面跟响应类型,可以匹配到相关的类型

    select image

    cls

    All

    清空当前所有请求

    cls

    dump

    All

    将所有请求打包成saz压缩包,保存到“我的文档\Fiddler2\Captures”目录下

    dump

    start

    All

    开始监听请求

    start

    stop

    All

    停止监听请求

    stop

    断点命令 

    bpafter

    All

    bpafter后边跟一个字符串,表示中断所有包含该字符串的请求

    bpafter baidu(输入bpafter解除断点)

    bpu

    All

    跟bpafter差不多,只不过这个是收到请求了,中断响应

    bpu baidu(输入bpu解除断点)

    bps

    Result

    后面跟状态吗,表示中断所有是这个状态码的请求

    bps 200(输入bps解除断点)

    bpv / bpm

    HTTP方法

    只中断HTTP方法的命令,HTTP方法如POST、GET

    bpv get(输入bpv解除断点)

    g / go

    All

    放行所有中断下来的请求

    g

    示例演示:

    ? 

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

     >

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

     <

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

    =

     

    @

     

    select

     

     cls

    dump

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

     

    断点命令:

    断点可以直接点击Fiddler下图的图标位置,就可以设置全部请求的断点,断点的命令可以精确设置需要截获那些请求。如下示例:

     

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

     

    命令:

    bpafter

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程 

     

    bps

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

     

    bpv

     

    g / go

    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程
    Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程

     

     

    tag:Fiddler抓包教程、Fiddler抓包工具、Fiddler抓包软件、Fiddler抓包、Fiddler、Fiddler教程 

    部分参考资料网络整理.

    展开全文
  • fiddler抓包常用功能

    千次阅读 2022-02-09 17:11:04
    Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于...抓包工具可以协助测试与开发人员去定位问题.

    Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据,Fiddler包含了一个强大的基于事件脚本的子系统,并且能使用.net语言进行扩展。你对HTTP 协议越了解, 你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能帮助你了解HTTP协议。Fiddler无论对开发人员或者测试人员来说,都是非常有用的工具。


    1 为什么要用抓包工具?什么时候会选择抓包?
    抓包工具可以协助测试与开发人员去定位问题,从而减轻工作量,节约时间成本

    1、 不知道接口的请情况下
    答:抓包可以获取url,请求方式,请求参数和相应值

    2、 抓包还可以定位问题
    答:我们可以查看此接口的参数和返回值。若参数传错,bug提个前端;若响应异常,没有调通后台接口;若有响应,响应值错误,bug提给后端

    3、 查看接口的安全性
    支付订单的时候,fiddler请求前断点,修改5000元为50元,造成数据串改,不安全。用户登录的时候,截取接口查看入参,可以看到具体的用户名、密码,不安全。所以通过fiddler或者F12可以查看接口安全性,做到把敏感数字**显示更安全。

    2 了解的都有那些抓包工具?这些工具有那些优缺点?哪个更适合我们使用?
    1、 Fiddler抓包工具,是客户端和服务端的http代理,客户端所有的请求都要先经过fiddler,到响应的服务端,然后端返回的所有数据也都要经过fiddler,Fiedler我们可以用来抓包,修改请求,响应参数,弱网测试等fiddler也是我们最常用的抓包工具之一

    2、 Charles(花瓶)抓包工具也是比较常用的,和fiddler差不多,请求接口和返回数据的显示方式不一样,Charles是树状结构比较清晰,fiddler是按照时间倒叙排的

    3、 Jmeter工具,jmeter也是可以进行抓包的,除了抓包,接口测试,性能测试也都不在话下,使用jmeter之前需要安装jdk

    我不常用:
    4、 Firebug抓包工具是浏览器firefox浏览器自带插件,支持很多种浏览器,直接按f12,和chrome与ie中自带的F12一样的,用起来比较方便
    5、 Httpwatch抓包工具是强大的网页数据分析工具,安装简单,不需要设置代理和证书,但只能看不能修改,,集成在Internet Explorer工具栏


    Fiddler安装与使用(以安卓模拟器为例)

    如果利用Fiddler和安卓模拟器抓https包,步骤一共五大步: (手机直接抓包只需要1、4步骤)

    1.配置fiddler

    2.安装模拟器

    3.配置模拟器的代理

    4.下载安装fiddler证书

    5.如果有特殊要求,需要开发打包

    一:配置fiddler

      > fiddler   ----> Tools   -----> Fiddler Options 
    
      在【Connection】面板里将Allow remote computers to connect勾选,设置端口号【默认为8888,可修改其他端口号】;点击【OK】按钮,关闭Fiddler并重新打开Fiddler
    
      fiddler设置监听端口号,必须重启fiddler才能生效
    

    在这里插入图片描述
    在 HTTPS 面板里勾选CaptureHTTPS CONNECTs,点击Actions,勾选Decrypt HTTPS traffic和Ignore servercertificate errors两项,点击OK(首次点击会弹出是否信任fiddler证书和安全提示,直接点击yes就行)
    在这里插入图片描述
    二 安装模拟器:

    ~~安装逍遥模拟器或雷电模拟器(某些模拟器不支持代理),其他略~~ 
    

    三 配置模拟器:

    (正常来说无需开启VT设置)

    逍遥模拟器: 找到模拟器中 ----- 设置 ----> WLAN打开如下页面

    在这里插入图片描述
    左键长按 [MEmuWiFi] 会弹出如下选项
    在这里插入图片描述
    点击 修改网络
    在这里插入图片描述
    雷电模拟器: 默认网络为打开状态。 若打开模拟器后,右上角无wifi图标显示,可设置打开。(打开后可能需要重启)
    在这里插入图片描述
    在这里插入图片描述
    鼠标移到这里再放开,点击wifi图标
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    四:下载安装fiddler证书

    完成后进入模拟器,打开浏览器(整个设置中必须保证fiddler一直打开)

    浏览器中输入http://ip:端口号(ip为安装fiddler的主机ip,端口为fiddler设置时的端口)
    在这里插入图片描述
    然后会跳转到证书下载页
    在这里插入图片描述
    点击下载之后,安装证书并起个名字,随便写就行,点击确定
    要求设置一个手机密码,自己设置一个,记住你的密码,下一次打开会让输入的,否则打不开模拟界面
    在这里插入图片描述
    安装成功后,此时在模拟器中操作即可在fiddler中抓取到对应的http和https的包

    测试:模拟器的浏览器输入 https://www.taobao.com
    在这里插入图片描述
    fiddler抓包:

    在这里插入图片描述
    五:如果有特殊要求,需要开发打包


    – 利用fiddler在PC端抓包的设置与安卓端类似。
    –利用fiddler在真实手机抓包:
    wifi:装了fiddler的电脑与手机为同一网域
    a、在wifi里绑定代理
    在这里插入图片描述
    b、绑完代理后下载证书,在手机自带浏览器里输入 10.107.123.1:8888(自己电脑的IP:8888),点击最后一个标红的链接进行下载(正常的情况下)

    在这里插入图片描述
    如果在下载证书的时候遇到下图的异常情况,点击查看“显示详细信息”,点击“访问此网站”忽略这个安全提醒,继续访问 安装证书
    在这里插入图片描述
    在这里插入图片描述
    c、下载后设置里进行信任证书(ios需要在下图里2个地方进行信任,安卓手机下载后就去安装,基本不会有多余的操作)
    在这里插入图片描述

    在这里插入图片描述
    d、信任后证书后,扫码安装app, 启动app,如果ios手机出现下图情况,这个是app验证,你关掉wifi使用移动网络,点击启动app,一次不行点击2次,可以进入app后,再使用WIFI,

    也可以通过关闭绑定的代理,启动app验证,验证通过后,再绑定代理,(为了方便选择第一种方法吧)

    在这里插入图片描述
    e、再次使用wifi后,启动app, 登录账号如果不能登录,大概率是环境还没有切换过来,这时你可以选择休息一会,然后杀掉进程再重新启动app

    f、到这里,绑定了代理,下载了证书,确保是测试环境、账号和密码正确(回归环境)就100%可以登录了

    再次附上关闭代理操作,如图
    在这里插入图片描述
    再次叮嘱:如果换个人提供环境,拿到别人的代理ip和端口,需要安照步骤3再来一遍


    fiddler具体功能:
    在这里插入图片描述
    在这里插入图片描述

    抓包:
    (1)查看HTTPS对应的接口、与页面的对应

    以统一工作平台APP为例:注意staging环境

    比如可以抓到验证码:
    在这里插入图片描述
    双击url,Json格式可以看到该url对应哪个接口:
    在这里插入图片描述
    (2)mock返回

    mock某个字段:(修改response数据)

    先双击,要想修改,右面的黄条条一定要点掉的:
    然后把链接拉到AutoResponder,删掉前缀 Method:POST EXACT
    在这里插入图片描述

    在这里插入图片描述
    一般勾前三个或全勾:
    在这里插入图片描述
    右键–Edit response,可以 修改。save后:刷新想要mock的页面查看:
    在这里插入图片描述
    和这样做一样:

    ----修改response数据,不打断点:

    选中序号16记录,右击-勾选“Unlock fo Editing”
    在这里插入图片描述
    选择Fiddler右侧reponse块下的TextView,这里修改title,如图:
    在这里插入图片描述
    去掉“Unlock for Editing”------ 再选择右侧上方的AutoResponder,勾选下方的checkbox选框,并将序号16托到下方—注意:直接拖,可以不用删掉url的前缀 Method:POST EXACT:
    在这里插入图片描述
    回到浏览器,刷新页面,如图,标题变为上面改的内容
    在这里插入图片描述

    (3)打断点 / 修改 response 数据
    —图标:直接点左下方这个位置:

    在这里插入图片描述
    —单个断点:使用命令

    已经知道了某个接口的请求地址,这时候只需要针对这一条请求打断点调试
    在这里插入图片描述
    bpu url

    取消断点,在命令行输入: bpu 回车就可以了( 或者打空格再回车应该也可以?)

    ----全局断点(并修改 response 数据):请求前打断点–得一个一个run,点击Go按钮走下一步:(清除断点:disabled)

    ----步骤:

    点击菜单栏按钮【Rules】—【automatic Breakpoints】-【After Response】
    在这里插入图片描述
    在这里插入图片描述
    在TextView改数据:

    在这里插入图片描述
    改动的时候Transformer的选项是None(只读时 Chunked Transfer-Encoding 是打钩的)
    在这里插入图片描述
    改完 Go 运行,刷新页面,数据就被改了
    在这里插入图片描述

    ----可以mock为这些HTTP类型,

    可以选择js文件(如果检验不到内容也会报错,页面502之类的)

    在这里插入图片描述

    在这里插入图片描述

    -----mock request

    方法1:打断点

    在这里插入图片描述
    刷新页面调该接口,和上面response差不多,可以修改入参,然后run它
    在这里插入图片描述
    断点完记得释放:bpu 空格

    方法2:
    在这里插入图片描述
    在这里插入图片描述
    application/x-www-form-urlencoded 与 multipart/form-data 的区别

    UrlRequest中的contentType默认值为 application/x-www-form-urlencoded。它是默认的内容编码类型,一般可以用于所有的情况,但是在传输比较大的二进制或者文本数据时效率极低。

    而对于 FileReference.upload() 请求的内容类型,将自动设置为 multipart/form-data 并忽略 contentType 属性的值。可以用来上传文件或者二进制数据和非ASCII数据

    (4)过滤

    只看一个接口———过滤host(封号分隔)、 过滤url(空格分隔):

    在这里插入图片描述
    过滤url:
    在这里插入图片描述

    (5)插件–方便查看脚本–:如查看IP、高亮等----https://blog.csdn.net/amrenyu/article/details/80745674

    方式一:通过【Rules】->【Customize Rules】 打开Fiddler ScriptEditor https://cloud.tencent.com/developer/news/270957

    快捷键:Ctrl+R

    方式二:通过右侧菜单“FiddlerScript”Tab页进入FiddlerScript编辑器

    在这里插入图片描述

    高亮:https://www.cnblogs.com/pachongshangdexuebi/p/6589899.html

    IP:找到main()方法,在里面添加如下代码。

    FiddlerObject.UI.lvSessions.AddBoundColumn(“Server”,50,"@response.server");
    FiddlerObject.UI.lvSessions.AddBoundColumn(“HostIP”,50,“x-hostIP”);

    (6)查看接口–my
    在这里插入图片描述

    (7)安装Fiddler后浏览器请求被拦截无法上网问题

    图一:勾选可对APP抓包,但不能上外网;

    图二:不勾选则反;

    图三:简便方法–左下角capturing–抓包,不capturing–不抓包

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    capturing 抓电脑的包,关掉后只抓手机的包

    (8)关于抓包的一些问题

    ----先看PC端fiddler的如上设置,是否可以正常抓包

    ----查看手机代理是否正确:IP && 端口(如果8888端口冲突也可以尝试换一下端口号)

    ----注意SwitchHosts环境:测试环境-----这里注意IP不正确时会报503错误(下图)----可能最多的情况是,后端修改了IP地址但本地host没有刷新导致连接不到服务器,这种情况APP或网址都打不开或者登录不了
    在这里插入图片描述
    ----IOS设备往往需要查看证书 && 软件是否验证 (测APP步骤)

    ----如果只能抓HTTP的包,不能抓HTTPS:需要删除all证书(本机fiddler根目录的 certmgr.msc + fiddler的)百度…(删除证书时的目录:D:\Users\jayla.wu\AppData\Roaming\Microsoft\Crypto\RSA)

    可能需要下载 fiddlercertmaker.exe / FiddlerCertMaker (1).exe

    可能需要删了fiddler重装:FiddlerSetup_5.0.20204.45441.exe

    fiddler官网有:https://www.telerik.com/fiddler/add-ons

    (9)fiddler抓包 443 请求不到数据 ---- https://www.cnblogs.com/linyufeng/p/13689395.html
    在这里插入图片描述
    在这里插入图片描述

    
    
    var hosts = 'zkd.me develop.dog';
    FiddlerApplication.Log.LogFormat("Logger session {0}, Url: {1}, isHttps: {2}, port: {3}", oSession.id, oSession.fullUrl, oSession.isHTTPS, oSession.port);
    if (hosts.indexOf(oSession.host) > -1) {
        FiddlerApplication.Log.LogFormat("Capture session {0}, Url: {1}, isHttps: {2}, port: {3}", oSession.id, oSession.fullUrl, oSession.isHTTPS, oSession.port);
        if (oSession.HTTPMethodIs('CONNECT')) {
            FiddlerApplication.Log.LogString('create fake tunnel response');
            oSession['x-replywithtunnel'] = 'FakeTunnel';
            return;
        }
    
        if (oSession.isHTTPS) {
            FiddlerApplication.Log.LogString('switch https to http request');
            oSession.fullUrl = oSession.fullUrl.Replace("https://", "http://");
            oSession.port = 80;
        }
    
        FiddlerApplication.Log.LogFormat("Processed session {0}, Url: {1}, isHttps: {2}, port: {3}", oSession.id, oSession.fullUrl, oSession.isHTTPS, oSession.port);
    }
    FiddlerApplication.Log.LogFormat("Logger session {0}, Url: {1}, isHttps: {2}, port: {3}", oSession.id, oSession.fullUrl, oSession.isHTTPS, oSession.port);
    
    

    (10)fiddler抓PC的包

    fiddler在https–options设置里,把证书导出来,浏览器添加该证书。

    这样会使PC要想打开页面必须先打开fiddler。

    (11)charles

    与 IP:8888 意思相同,手机安装证书需要先和Charles设置的IP和端口一致,连代理后,手机端输入chls.pro/ssl

    该步骤来源:https://www.jianshu.com/p/551711c121f0

    Charles全教程:https://blog.csdn.net/u012486840/article/details/106593213?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-2.control

    展开全文
  • Fiddler 抓包工具

    2017-08-14 12:55:59
    web Fiddler 抓包工具
  • fiddler 抓包详细教程

    万次阅读 多人点赞 2019-07-04 14:02:15
    为什么要先学fiddler? 学习接口测试必学http协议,如果直接先讲协议,我估计小伙伴们更懵,为了更好的理解协议,先从抓包开始。 结合抓包工具讲http协议更容易学... ... 一、网页不安全 1.用fiddler抓包时候,打开百...

    为什么要先学fiddler?

    学习接口测试必学http协议,如果直接先讲协议,我估计小伙伴们更懵,为了更好的理解协议,先从抓包开始。
    结合抓包工具讲http协议更容易学一些。

    抓firefox上https请求

    fiddler是一个很好的抓包工具,默认是抓http请求的,对于pc上的https请求,会提示网页不安全,这时候需要在浏览器上安装证书。

    一、网页不安全

    1.用fiddler抓包时候,打开百度网页:https://www.baidu.com
    2.提示:网页不安全
    在这里插入图片描述

    二、fiddler设置

    1.打开菜单栏:Tools>Fiddler Options>HTTPS
    2.勾选Decrypt HTTPS traffic,里面的两个子菜单也一起勾选了
    在这里插入图片描述

    三、导出证书

    1.点右上角Actions按钮
    2.选第二个选项,导出到桌面,此时桌面上会多一个文件:FiddlerRoot.cer,如图。
    在这里插入图片描述

    四、导入到firefox浏览器

    1.打开右上角浏览器设置》选项》高级》证书》查看证书》证书机构》导入

    在这里插入图片描述

    2.勾选文件导入

    在这里插入图片描述

    3.打开文件后,会弹出个框,勾选三个选项就完成操作啦。

    在这里插入图片描述

    如果还不能成功,那就重启浏览器,重启电脑了。

    证书导出失败问题

    前言

    在点Actions时候出现Export Failed:The root certificate could not be located.最近有很多小伙伴在fiddler导出证书的时候,遇到无法导出的问题,收集了几种解决办法,供参考。

    一、证书无法导出

    1.在点Actions时候出现Export Failed:The root certificate could not be located.

    在这里插入图片描述

    二、无法导出问题解决方案

    1.首先确保安装的 Fiddler 是较新的版本,先关闭fiddler
    2.下载并安装Fiddler证书生成器
    下载地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
    3.点Tools>Fiddler Options
    4.勾选Capture HTTPS traffic
    5.点Actions按钮,Export Root Certificate Desktop按钮导出到桌面

    三、删除证书

    1.有些小伙伴可能之前装过一些fiddler证书,安装的姿势不对,导致新的证书不起作用,这时候需要先删掉之前的证书了
    方法一:从fiddler里打开证书管理界面
    方法二、从文件管理器输入:certmgr.msc并回车
    2.搜索之前安装的fiddler证书,找到之后全部删除
    3.重新下载证书生成器:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
    一路傻瓜式安装,遇到警告什么的直接忽略就行。
    4.安装好证书后,按照1.1章节Fiddler抓包1-抓firefox上https请求的浏览器导入证书就行了(弄好之后,重启电脑就OK了)

    只抓APP的请求

    前言

    fiddler在抓手机app的请求时候,通常也会抓到来自PC的请求,导致会话消息太多,那么如何把来自pc的请求过滤掉,只抓来自APP的请求呢?
    必备环境:
    1.电脑上已装fiddler
    2.手机和电脑在同一局域网

    设置

    1.fiddler>Tools>Fiddler Options>Connections 勾选Allow remote computers to connect。
    2.记住这里的端口号:8888,后面会用到。
    在这里插入图片描述

    查看电脑IP
    1.打开cmd,输入:ipconfig,记住这个IPv4地址。

    ipconfig
    在这里插入图片描述

    设置代理

    1.手机设置->WLAN设置->选择该wifi,点右边的箭头(有的手机是长按弹出选项框)。

    在这里插入图片描述
    2.选择修改网络配置:
    配置主机名:与主机电脑IP地址保持一致
    端口号:8888
    3.保存后就可以抓到来自手机的请求了。
    在这里插入图片描述

    抓APP上的HTTPS请求

    1.如果app都是http请求,是不需要安装证书,能直接抓到的,如果是https请求,这时候手机就需要下载证书了。
    2.打开手机浏览器输入:http://10.224.xx.xx:8888 ,这个中间的host地址就是前面查到的本机地址。
    3.出现如下画面,点箭头所指的位置,点击安装就可以了。
    在这里插入图片描述

    设置过滤

    1.手机上设置代理后,这时候fiddler上抓到的是pc和app所有的请求,如果pc上打开网址,会很多,这时候就需要开启过滤功能了。
    2.打开fiddler>Tools>Fiddler Options>HTTPS>…from remote clients only,勾选这个选项就可以了

    • from all processes :抓所有的请求
    • from browsers only :只抓浏览器的请求
    • from non-browsers only :只抓非浏览器的请求
    • from remote clients only:只抓远程客户端请求
      在这里插入图片描述
      (注意:如果手机设置代理后,测完之后记得恢复原样,要不然手机无法正常上网。)

    查看get与post请求

    前言

    前面两篇关于Fiddler抓包的一些基本配置,配置完之后就可以抓到我们想要的数据了,接下来就是如何去分析这些数据。
    本篇以博客园的请求为例,简单分析get与post数据有何不一样,以后也能分辨出哪些是get,哪些是post了。

    get请求

    1.打开fiddler工具,然后浏览器输入博客首页地址:http://www.cnblogs.com/yoyoketang/
    2.点开右侧Inspectors下的Headers区域,查看Request Headers
    3.Request Headers区域里面的就是请求头信息,可以看到打开博客园首页的是get请求
    在这里插入图片描述

    post请求

    1.打开登录首页:https://passport.cnblogs.com/user/signin
    2.输入账号和密码登录成功后,查看fiddler抓包的请求头信息,可以看出是post请求
    在这里插入图片描述

    如何找出需要的请求

    1.打开fiddler后,左边会话框区域刷刷刷的很多请求,那么如何有效的找出自己需要的请求呢?
    2.首先第一步:清屏(cls),在左下角命令行输入cls,清空屏幕
    (清屏也可以使用快捷键Ctrl+X)
    在这里插入图片描述
    3.第二步在浏览器输入url地址的时候,记住这个地址,如打开博客首页:http://www.cnblogs.com/yoyoketang/
    在点击登录按钮的时候,不要做多余的操作了,然后查看fiddler会话框,这时候有好几个请求。
    4.如上图,红色框框这个地方就是host地址,红色圈圈地方就是url的路径(yoyoketang),也就是博客首页的地址了,那这个请求就是博客首页的请求了。

    get和post请求参数区别

    1.关于get和post的功能上区别就不说了,大家自己查资料,这里主要从fiddler抓包的层面查看请求参数上的区别
    2.get请求的Raw参数查看,主要分三部分:

    • 第1部分是请求url地址
    • 第2部分是host地址
    • 第3部分是请求头部信息header
      在这里插入图片描述
      3.再查看博客登录请求的Raw信息,post的信息分四部分。
      –前面3块内容都一样,第3部分和第4部分中间会空一行
      –第4部分内容就是post请求的请求body(get请求是没body的)

    工具介绍(request和response)

    前言

    本篇简单的介绍下fiddler界面的几块区域,以及各自区域到底是干什么用的,以便于更好的掌握这个工具

    工具简介

    1. 第一块区域是设置菜单,这个前面3篇都有介绍
    2. 第二块区域是一些快捷菜单,可以点下快捷功能键
    3. 第三块左边是抓捕的请求会话列表,每一个请求就是一个会话
    4. 第四块右边上方区域是request请求的详细信息,可以查看Headers、Cookies、Raw、JSON等
    5. 第五块右边下方区域就是response信息,可以查看服务端返回的json数据或其它信息
    6. 第六块区域左下角黑色的那块小地方,虽然很不起眼,容易被忽略掉,这地方是命令行模式,可以输入简单的指令如:cls,执行清屏的作用等
      在这里插入图片描述在这里插入图片描述

    会话框

    1.会话框主要查看请求的一些请求的一些基本信息,如# 、result、protocol、host、url、body、 caching、content-type、process
    在这里插入图片描述

    2、会话框列表最左侧,#号这一栏是代表这个请求大概是什么内容,<>这个符号就是我们一般要测试的请求与响应的类型。
    3.result:这里是服务器返回的代码,如

    • 200,请求ok;2xx一般是服务器接受成功了并处理
    • 3xx,重定向相关
    • 4xx,404最常见的的就是找不到服务器,一般是请求地址有问题
    • 5xx,这个一般是服务器本身的错误

    4.protocol:这个是协议类型,如http、https
    5.host:主机地址或域名
    6.url:请求的路径
    7.body:该条请求产生的数据大小
    8.caching:缓存相关
    9.content-type:连接类型
    10.process:客户端类型

    Request 和Response

    1.Request是客户端发出去的数据,Response是服务端返回过来的数据,这两块区域功能差不多
    在这里插入图片描述
    2.headers:请求头,这里包含client、cookies、transport等
    3.webfroms:请求参数信息表格展示,更直观。可以直接该区域的参数
    4.Auth:授权相关,如果显示如下两行,说明不需要授权,可以不用关注(这个目前很少见了)

    • No Proxy-Authorization Header is present.
    • No Authorization Headeris present.

    5.cookies:查看cookie详情
    6.raw:查看一个完整请求的内容,可以直接复制
    7.json:查看json数据
    8.xml:查看xml文件的信息

    decode解码

    1.如果response的TextView区域出现乱码情况,可以直接点下方黄色区域解码
    在这里插入图片描述
    2.也可以选中上方快捷菜单decode,这样后面的请求都会自动解码了
    在这里插入图片描述

    接口测试(Composer)

    前言

    Fiddler最大的优势在于抓包,我们大部分使用的功能也在抓包的功能上,fiddler做接口测试也是非常方便的。
    对应没有接口测试文档的时候,可以直接抓完包后,copy请求参数,修改下就可以了。

    Composer简介

    点开右侧Composer区域,可以看到如下界面,就是测试接口的界面了

    在这里插入图片描述

    1.请求方式:点开可以勾选请求协议是get、post等
    2.url地址栏:输入请求的url地址
    3.请求头:第三块区域可以输入请求头信息
    4.请求body:post请求在此区域输入body信息
    5.执行:Execute按钮点击后就可以执行请求了
    6.http版本:可以勾选http版本
    7.请求历史:执行完成后会在右侧History区域生成历史记录

    模拟get请求

    1.在Composer区域地址栏输入博客首页:http://www.cnblogs.com/yoyoketang/
    2.选择get请求,点Execute执行,请求就可以发送成功啦
    3.请求发送成功后,左边会话框会生成一个会话记录,可以查看抓包详情
    4.右侧history区域会多一个历史请求记录
    5.会话框选中该记录,查看测试结果:

    • 选中该会话,点开Inspectors
    • response区域点开Raw区域
    • Raw查看的是HTML源码的数据

    在这里插入图片描述

    • 也可以点WebView,查看返回的web页面数据

    在这里插入图片描述

    Json数据

    1.有些post的请求参数和返回参数是Json格式的,如博客园的登录请求:https://passport.cnblogs.com/user/signin
    2.在登录页面手动输入账号和密码,登录成功。
    3.找到这个登录成功的会话,查看json数据如下图:
    在这里插入图片描述

    模拟post请求

    1.请求类型勾选post
    2.url地址栏输入对应的请求地址
    3.body区域写登录的json参数,json参数直接copy上一步抓包的数据,如下图红色区域
    在这里插入图片描述
    4.header请求头区域,可以把前面登录成功后的头部抓包的数据copy过来
    (注意,有些请求如果请求头为空的话,会请求失败的)
    在这里插入图片描述

    5.执行成功后查看测试结果:
    –执行成功如第三所示的图,显示success=True
    –执行失败如下图所示,显示
    message=Invalid length for a Base-64 char array or string.
    success=False
    在这里插入图片描述

    get请求(url详解)

    前言

    上一篇介绍了Composer的功能,可以模拟get和post请求,get请求有些是不带参数的,这种比较容易,直接放到url地址栏就行。有些get请求会带有参数,本篇详细介绍url地址格式。

    url详解

    1.url就是我们平常打开百度在地址栏输入的:https://www.baidu.com,如下图,这个是最简单的url地址,打开的是百度的主页
    在这里插入图片描述

    2.再看一个稍微复杂一点的url,在百度输入框输入:上海悠悠博客园
    在这里插入图片描述

    3.查看url地址栏,对比之前的百度首页url地址,后面多了很多参数。当然最主要的参数是:wd=上海悠悠博客园(后面的一大串可以暂时忽略)。
    4.那么问题来了,这些参数有什么作用呢?
    可以做个简单的对比,在地址栏分别输入:
    https://www.baidu.com
    https://www.baidu.com/s?wd=上海悠悠博客园
    对比打开的页面有什么不一样,现在知道作用了吧,也就是说这个多的”/s?wd=上海悠悠博客园”就是搜索的结果页面

    url解析

    1.以”https://www.baidu.com/s?wd=上海悠悠博客园”这个url请求的抓包为例
    在这里插入图片描述
    2.那么一个完整的url地址,基本格式如下:
    https://host:port/path?xxx=aaa&ooo=bbb

    • http/https:这个是协议类型,如图中所示
    • host:服务器的IP地址或者域名,如图中2所示
    • port:HTTP服务器的默认端口是80,这种情况下端口号可以省略。
      如果使用了别的端口,必须指明,例如:192.168.3.111:8080,这里的8080就是端口
    • path:访问资源的路径,如图中3所示/s (图中3是把path和请求参数放一起了)
    • ?:url里面的?这个符号是个分割线,用来区分问号前面的是path,问号后面的是参数
    • url-params:问号后面的是请求参数,格式:xxx=aaa,如图4区域就是请求参数
    • &:多个参数用&符号连接

    请求参数(params)

    1.在url里面请求参数一般叫params,但是我们在fiddler抓包工具看到的参数是:QueryString
    2.QueryString是像服务端提交的参数,其实跟params是一个意思,每个参数对应的都有name和value值
    3.多个参数情况如下:
    在这里插入图片描述

    UrlEncode编码

    1.如果url地址的参数带有中文的,一般在url里面会是这样的,如第二点里的wd=%E4%B8%8A%E6%B5%B7%E6%…
    像看到%E4这种编码的就是经过url编码过的,需要解码就能看到是什么中文了
    2.用urlencode在线编码/解码工具,地址:http://tool.chinaz.com/tools/urlencode.aspx
    在这里插入图片描述

    post请求(body)

    前言上一篇讲过get请求的参数都在url里,post的请求相对于get请求多了个body部分,本篇就详细讲解下body部分参数的几种形式。
    注意:post请求的参数可以放在url,也可以放在body,也可以同时放在url和body,当然post请求也可以不带参数。
    只是一般来说,post请求的参数习惯放到body部分

    body数据类型

    常见的post提交数据类型有四种:
    1.第一种:application/json:这是最常见的json格式,也是非常友好的深受小伙伴喜欢的一种,如下

    {“input1”:”xxx”,”input2”:”ooo”,”remember”:false}
    

    2.第二种:application/x-www-form-urlencoded:浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 application/x-www-form-urlencoded 方式提交数

    input1=xxx&input2=ooo&remember=false
    

    3.第三种:multipart/form-data:这一种是表单格式的,数据类型如下:

    WebKitFormBoundaryrGKCBY7qhFd3TrwA 
    Content-Disposition: form-data; 
    name=”file”; 
    filename=”chrome.png” 
    Content-Type: image/png PNG
    content of chrome.png 
    WebKitFormBoundaryrGKCBY7qhFd3TrwA
    

    4.第四种:text/xml:这种直接传的xml格式

    <!--?xml version="1.0"?-->
    <methodcall>
    	<methodname>examples.getStateName</methodname>
    	<params>
    		<param>
    			<value><i4>41</i4></value>
    		</param>
    	</params>
    </methodcall>
    

    json格式

    1.打开博客园的登录页面,输入账号密码后抓包,查看post提交数据,点开Raw查看整个请求的原始数据
    在这里插入图片描述
    2.前面讲过post的请求多一个body部分,上图红色区域就是博客园登录接口的body部分,很明显这种格式是前面讲到的第一种json格式
    3.查看json格式的树状结构,更友好,可以点开JSON菜单项
    在这里插入图片描述
    4.查看这里的json数据,很明显传了三个参数:

    • input1:这个是登录的账号参数(加密过)
    • input2:这个是登录的密码参数(加密过)
    • remember:这个是登录页面的勾选是否记住密码的选项,False是不记住,True是记住

    x-www-form-urlencoded

    1.登录博客园后,打开新随笔,随便写一个标题和一个正文后保存,抓包数据如下
    在这里插入图片描述

    2.如上图的这种格式,很明显就属于第二种了,这种类型的数据查看,在WebFrom里面查看了
    在这里插入图片描述

    3.上面红色框框的Query String是url里面的参数,下面红色框框的body部分就是这次post提交的body参数部分了。

    WebFrom

    1.为什么登录请求的WebFrom的body部分为空呢?
    在这里插入图片描述

    2.看上图红色框框的显示:这里只支持application/x-www-form-urlencoded这种格式的body参数,也就是说json格式的,需要在JOSN这一栏查看了。

    打断点(bpu)

    前言

    先给大家讲一则小故事,在我们很小的时候是没有手机的,那时候跟女神聊天都靠小纸条。某屌丝A男对隔壁小王的隔壁女神C倾慕已久,于是天天小纸条骚扰,无奈中间隔着一个小王,这样小王就负责传小纸条了。有一天小王忍不住偷偷打开A男表白的纸条,把里面内容改了下,改成了:我的同桌小王喜欢你。最后女神C和小王走在了一起。。。这是一个悲伤的故事!

    断点

    1.为什么要打断点呢?
    比如一个购买的金额输入框,输入框前端做了限制100-1000,那么我们测试的时候,需要测试小于100的情况下。很显然前端只能输入大于100的。这是我们可以先抓到接口,修改请求参数,绕过前端,传一个小于100的数,检查服务端的功能是否OK。
    也就是说接口测试其实是不需要管前端的,主要测后端的功能。Fiddler作为代理服务器的作用其实就相当于上面故事里面的小王,传纸条的作用,Fiddler(小王)修改了请求参数(小纸条),是为了验证服务端功能(女神C)。
    2.Fiddler可以修改以下请求

    • Fiddler设置断点,可以修改HTTP请求头信息,如修改Cookie,User-Agent等
    • 可以修改请求数据,突破表单限制,提交任意数字,如充值最大100,可以修改成10000
    • 拦截响应数据,修改响应体,如修改服务端返回的页面数据

    断点的两种方式

    1.before response:这个是打在request请求的时候,未到达服务器之前
    –屌丝A传给小王的时候,小王在这个时候拦截了小纸条,未传给女神C
    在这里插入图片描述

    2.after response:也就是服务器响应之后,在Fiddler将响应传回给客户端之前。
    –女神C回了小纸条,小王拿到后拦截了,未传给屌丝A

    全局断点

    1.全局断点就是中断fiddler捕获的所有请求,先设置下,点击rules-> automatic breakpoint ->before requests
    在这里插入图片描述

    2.选中before requests选项后,打开博客园首页:http://www.cnblogs.com/yoyoketang/,看到如下T的标识,说明断点成功
    在这里插入图片描述

    3.打完断点后,会发现所有的请求都无法发出去了,这时候,点下Go按钮,就能走下一步了
    在这里插入图片描述

    4.找到需要修改的请求后,选中该条会话,右侧打开WebFroms,这时候里面的参数都是可以修改的了
    在这里插入图片描述

    5.修改之后点Run to Completion就能提交了,于是就成功修改了请求参数了
    6.打全局断点的话,是无法正常上网的,需要清除断点:rules-> automatic breakpoint ->disabled

    单个断点

    已经知道了某个接口的请求地址,这时候只需要针对这一条请求打断点调试,在命令行中输入指令就可以了

    请求前断点(before response): bpu

    1. 论坛登录接口:https://passport.cnblogs.com/user/signin
    2. 命令行输入:bpu https://passport.cnblogs.com/user/signin 回车
    3. 请求登录接口的时候,就会只拦截登录这个接口了,此时可以修改任意请求参数
    4. 取消断点,在命令行输入: bpu 回车就可以了

    在这里插入图片描述

    响应后断点(after requests): bpafter

    1. 论坛登录接口:https://passport.cnblogs.com/user/signin

    2. 在命令行输入:bpafter https://passport.cnblogs.com/user/signin 回车

    3. 登录博客园,会发现已经拦截到登录后服务器返回的数据了,此时可以修改任意返回数据

    4. 取消断点,在命令行输入: bpafter 回车就可以了

    拦截来自某个网站所有请求

    1.在命令行输入:bpu www.cnblogs.com
    2.打开博客园任意网页,发现都被拦截到了
    3.打开博客园其他网站,其它网站可以正常请求
    4.说明只拦截了来自部落论坛(www.cnblogs.com)的请求
    5.清除输入bpu回车即可

    命令行其它相关指令

    Bpafter, Bps, bpv, bpm, bpu
    这几个命令主要用于批量设置断点
    Bpafter xxx: 中断 URL 包含指定字符的全部 session 响应
    Bps xxx: 中断 HTTP 响应状态为指定字符的全部 session 响应
    Bpv xxx: 中断指定请求方式的全部 session 响应
    Bpm xxx: 中断指定请求方式的全部 session 响应 、、同于 bpv xxx
    Bpu xxx:与bpafter类似
    当这些命令没有加参数时,会清空所有设置了断点的HTTP请求。
    更多的其他命令可以参考Fiddler官网手册
    (赠言:打断点仅供测试需要,勿走歪门邪道!!!)

    会话保存

    前言

    为什么要保存会话呢?举个很简单的场景,你在上海测试某个功能接口的时候,发现了一个BUG,而开发这个接口的开发人员是北京的一家合作公司。
    你这时候给对方开发提bug,如何显得专业一点,能让对方心服口服的接受这个BUG呢?如果只是截图的话,不是很方便,因为要截好几个地方还描述不清楚,不如简单粗暴一点把整个会话保存起来,发给对方。

    一、保存为文本

    1. 以博客园登录为例,抓到登录的请求会话
    2. 点左上角File>Save>Selected Sessions>as Text,保存到电脑上就是文本格式的
      在这里插入图片描述
    3. 文本格式的可以直接打开,结果如下图

    在这里插入图片描述

    几种保存方式

    1. save-All Sessions :保存所有的会话,saz文件
    2. save-Selected Session:保存选中的会话
      • in ArchiveZIP :保存为saz文件
      • as Text :以txt文件形式保存整个会话包括Request和Response
      • as Text (Headers only) :仅保存头部
    3. Request:保存请求
      • Entir Request:保存整个请求信息(headers和body)
      • Request Body:只保存请求body部分
    4. Response:保存返回
      • Entir Response:保存整个返回信息(headers和body)
      • Response Body:只保存返回body部分
      • and Open as Local File:保存Response信息,并打开文件

    乱码问题(decode)

    1. 打开博客园首页:http://www.cnblogs.com/yoyoketang/,保存之后查看,会发现返回的是乱码

    在这里插入图片描述

    1. 遇到这种情况,主要是需要解码,用前面学到的decode方法

    在这里插入图片描述
    3. 点击箭头区域后,重新保存就没乱码了。
    4. 还有一个最简单办法就是选中上图会话框上的decode按钮,这样就自动解码了。

    保存与导入全部会话

    1. 我们可以打开fiddler,操作完博客园后,选中save>All Sessions,保存全部会话
    2. 保存后,在fiddler打开也很方便,直接把刚才保存的会话按住拽进来就可以了

    在这里插入图片描述
    3. 也可以选择File>Load Archive导入这个文件

    在这里插入图片描述

    Repaly

    1. 导入请求后,可以选中某个请求,点击Repaly按钮,重新发请求
    2. 也可以ctrl+a全部选中后,点Repaly按钮,一次性批量请求

    在这里插入图片描述
    这里保存会话和replay功能其实就是相当于录制和回放了

    自定义会话框

    前言

    在使用fiddler抓包的时候,查看请求类型get和post每次只有点开该请求,在Inspectors才能查看get和post请求,不太方便。于是可以在会话框直接添加请求方式。

    添加会话框菜单

    1. 点会话框菜单(箭头位置),右键弹出选项菜单

    在这里插入图片描述
    2. 选择Customize columns选项,Collection选项选择Miscellaneous

    在这里插入图片描述
    3. Field Name选择:RequestMethod

    在这里插入图片描述
    在这里插入图片描述
    4. 点Add按钮即可添加成功

    在这里插入图片描述

    隐藏会话菜单

    1.选择需要隐藏的菜单,右键。选择Hide this column

    在这里插入图片描述
    2.隐藏后也可以让隐藏的菜单显示出来:Ensure all columns are visble

    在这里插入图片描述

    调整会话框菜单顺序

    1.如果需要调整会话框菜单顺序,如:Content-Type菜单按住后往前移动,就能调整了
    在这里插入图片描述

    会话排序

    1.点击会话框上的菜单,就能对会话列表排序了,如点body菜单
    在这里插入图片描述

    2.点完后上面有个上箭头(正序),或者下箭头(倒叙)。但是不能取消,取消的话关掉fiddler后重新打开就行了。

    http协议简介

    什么是http

    1.HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
    2.HTTP(HyperText Transfer Protocol)协议是基于TCP的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容。默认端口是80
    3.http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议

    在这里插入图片描述

    二、请求报文
    1.HTTP请求报文主要由请求行、请求头部、空一行、请求正文4部分组成
    (当然,如果不算空的一行,那就是3个部分)
    在这里插入图片描述

    2.下图是fiddler工具抓的post请求报文(工具使用看fiddler篇),可以对照上图,更清楚的理解http的请求报文内容。
    在这里插入图片描述

    响应报文

    1.HTTP响应报文主要由状态行、消息报头、空一行、响应正文4部分组成
    (当然,如果不算空的一行,那就是3个部分)
    在这里插入图片描述

    2.下图就是一个请求的响应内容,用fiddler抓包工具可以查看
    在这里插入图片描述

    完整的http内容

    1.一个完整的http协议其实就两块内容,一个是发的请求,一个服务端给的响应。
    2.以下是请求https://github.com/timeline.json 这个地址后,用fiddler抓包导出为文本,查看完整的http请求内容。(具体操作查看《fiddler 1.10会话保存》)
    在这里插入图片描述

    1. 内容如下:

    以下是请求报文

    GET https://github.com/timeline.json HTTP/1.1
    Host: github.com
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate, br
    Cookie: xxx(已省略)
    

    以下是请求报文

    GET https://github.com/timeline.json HTTP/1.1
    Host: github.com
    User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate, br
    Cookie: xxx(已省略)
    X-Request-Id: d09e199dc290c6f0dc79fe49007069ab
    X-Runtime: 0.004161
    Content-Security-Policy: xxx(已省略)
    Strict-Transport-Security: xxx(已省略)
    X-Content-Type-Options: nosniff
    X-Frame-Options: deny
    X-XSS-Protection: 1; mode=block
    X-Runtime-rack: 0.007388
    X-GitHub-Request-Id: FE36:2B0A9:177175F:23C092D:594FD998
    Content-Length: 379
    

    以下是响应正文(json格式)

    {“message”:”Hello there, wayfaring stranger. If you’re reading this then you probably didn’t see our blog post a couple of years back announcing that this API would go away: http://git.io/17AROg Fear not, you should be able to get what you need from the shiny new Events API instead.”,”documentation_url”:”https://developer.github.com/v3/activity/events/#list-public-events”}
    

    请求行

    8种请求方法

    1.请求行有三个主要参数:请求方法、url、协议版本。
    在这里插入图片描述

    请求方法包含:

    请求方式简介
    get请求指定的页面信息,并返回实体主体。
    post向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
    HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
    OPTIONS返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性
    PUT向指定资源位置上传其最新内容
    DELETE请求服务器删除Request-URL所标识的资源
    TRACE回显服务器收到的请求,主要用于测试或诊断
    CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

    注意:
    1)方法名称是区分大小写的。
    2)最常见的的就是通常说的get和post方法。

    url详解

    1.打开百度,在搜索框输入任意文字,搜索后,复制地址栏的url地址:

    https://www.baidu.com/s?wd=%E4%B8%8A%E6%B5%B7%E6%82%A0%E6%82%A0%E5%8D%9A%E5%AE%A2&rsv_spt=1&rsv_iqid=0x91baaabd00070ba2&issp=1&f=8&rsv_bp=1&rsv_idx=2
    

    2.那么一个完整的url地址,基本格式如下:

    https://host:port/path?xxx=aaa&ooo=bbb
    
    • http/https:这个是协议类型,如图中1所示
    • host:服务器的IP地址或者域名,如图中2所示
    • port:HTTP服务器的默认端口是80,这种情况下端口号可以省略。如果使用了别的端口,必须指明,例如:192.168.3.111:8080,这里的8080就是端口
    • path:访问资源的路径,如图中3所示/s (图中3是把path和请求参数放一起了)
    • ?:url里面的?这个符号是个分割线,用来区分问号前面的是path,问号后面的是参数
    • url-params:问号后面的是请求参数,格式:xxx=aaa,如图4区域就是请求参数
    • &:多个参数用&符号连接

    协议版本

    根据HTTP标准,HTTP请求可以使用多种请求方法。
    HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
    HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

    展开全文
  • Fiddler抓包软件

    2019-04-23 17:13:49
    Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。 Fiddler 要比其他的网络调试器要更加简单...
  • Fiddler抓包

    2019-04-15 10:38:16
    Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指[cookie](https://baike.baidu.com/item/cookie/1119),html,js,css等文件...
  • Fiddler抓包工具简介,安装及使用教程详解-附件资源
  • Fiddler抓包工具

    2016-01-28 15:43:52
    Fiddler抓包工具,获取服务器的请求数据。
  • Fiddler抓包程序

    2018-11-05 19:32:47
    Fiddler抓包程序

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 26,604
精华内容 10,641
关键字:

fiddler抓包

友情链接: turbinepudn.rar