当前位置: 首页 > news >正文

抓包工具Fiddler(http与fiddler)

文章目录

  • 功能测试与数据库
      • 项目与数据库的关系
  • 功能测试与抓包工具
    • HTML与HTTP 协议
      • URL
      • HTML
      • HTTP
    • HTTP请求与响应
      • 基本概念
      • HTTP请求
      • HTTP响应
  • Fiddler原理:
    • Fiddler使用
    • HTTPS请求(扩展)
  • fiddler抓包之接口基础概述
    • HTTP协议请求响应报文详解
  • fiddler弱网测试
  • fiddler模拟mock数据
  • fiddler 篡改数据

功能测试与数据库

项目与数据库的关系

  • 浏览器<—>(请求/响应)Web服务器Apache<—>(转发/响应)PHP网站框架ThinkPHP<—>(请求/响应数据)数据库MySQL

功能测试与抓包工具

  • 抓包:(package capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全。抓包经常被用来进行数据截取等。
  • 功能测试用到抓包工具的场景:
    • 通过抓包工具截取观察网站的请求信息,帮助我们更深入的了解网站
    • 通过抓包工具截取、观察网站的请求与返回信息,帮助测试进行Bug定位与描述
    • 通过抓包工具拦截修改请求信息,绕过界面的限制,测试服务端的功能
    • 通抓包工具模拟接口请求数据
  • 常用的抓包工具:Fiddler、Charles、F12开发人员工具等

HTML与HTTP 协议

  • URL:统一资源定位符
  • HTML:超文本标记语言
  • HTTP:超文本传输协议

URL

  • 示例:http://localhost/index.php?m=Home&c=Goods&a=goodsInfo&id=46
  • 格式:
    • 协议:客户端和服务器通讯的标准,http、https、ssh等
    • IP或域名
    • 端口号:协议默认的端口号是可以省略的
      • http:默认端口80
      • https:默认端口443
      • ssh:默认端口22
    • 资源路径:资源存放的位置,资源可以是各种超文本信息,如音频、视频等
    • 参数
      • 格式:用?与URL的主体部分分开
      • 参数格式参数名=参数值,有多个参数时用&拼接即可

HTML

HTML:HyperText Markup Language,超文本标记语言

  • 超文本:声音、视频、图片、超链接等
  • 标记:就是通过【<标记符>内容</标记符>】的格式让内容具有不同的表现形式,从而达到超文本的目的
    • 如:<title>百度一下,你就知道</title>
    • 互联网上浏览的网页,本质上就是超文本标记语言

HTTP

HTTP:HyperText Transfer Protocol,超文本传输协议,是互联网上最常用的协议之一

HTTP请求与响应

基本概念

  • 客户端:用户发送请求,如浏览器、APP等
  • 服务器:处理客户端请求并返回数据,如apache,nginx等
  • 请求:客户端向服务器索要数据
  • 响应:服务器处理完以后,返回给客户端的数据与信息

HTTP请求

  • 请求内容

    • 请求行:
      • 位置是在第一行
      • 请求方式、请求地址
      • 协议及版本
    • 请求头:
      • 位置是在第一行之后,到空行之前
      • 用来描述客户端信息的相关参数,一般以键值对的形式存在,如描述浏览器类型等
    • 请求体:位置是在空行之后
  • 请求方式(GET和POST)

    • get:用于查询,如搜索商品
    • post:用于提交数据,相对比较安全,如登录、注册

HTTP响应

  • 响应内容
    • 响应行:位置是在第一行,包含协议及版本、响应状态码、响应消息
    • 响应头:位置是在第一行之后,到空行之前,告诉客户端服务器相关信息,如web服务器类型等
    • 响应体:位置是在空行之后,如登陆成功
  • 响应状态码:由三位数字组成,第一位数字代表响应消息的级别
    • 2XX:成功,如200
    • 3XX:重定向,如301
    • 4XX:客户端存在问题,如404
    • 5XX:服务器端有问题,如501
  • 面试题:GET和POST的区别
    • 最直观的区别就是GET把参数包含在URL中,POST通过request body(请求体)传递参数
    • GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息
    • GET在浏览器回退时是无害的,而POST会再次提交请求
    • GET请求只能进行URL编码,而POST支持多种编码方式
    • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留
    • GET请求在URL中传送的参数是有长度限制的,而POST没有(这个限制是由浏览器导致)
    • 多参数的数据类型,GET只接受ASCII字符,而POST没有限制
    • GET参数通过URL传递,POST放在Request body中
      ##抓包工具

Fiddler原理:

  • 请求先发送给Fiddler,Fiddler接受请求后转发给服务器
  • 服务器处理请求后将响应数据返回给Fiddler,Fiddler再转发给客户端(浏览器)

Fiddler使用

  • 菜单栏

    • rules:用于创建会话规则过滤会话,例如可以隐藏掉不常用类型的请求,如图片,304之类
    • tools:主要是工具,可在options中设置fiddler的端口号、https的请求、connection等,也可以清除cache
  • 说明备注:

  • 删除请求

    • 菜单删除
    • 命令行删除:cls、clear
    • 键盘:delete
    • 快捷键:Ctrl+X
  • 设置过滤

  1. 点击Filter页签,勾选“Use Filters”
  2. Hosts下方的第二个下拉框,选择“Show Only the following Hosts”,此过滤最常用
  3. 在下方输入框中输入要抓包的主机地址(多个地址用英文分号隔开,如:localhost;127.0.0.1)
  4. 点击右上角的“Actions”,选择“Run Filterset Now”
  5. 如果取消过滤,去掉Use Filters的勾选
  • 过滤图片、js这些,在Hide if URL contains中加入下面一行过滤图片正则代码
REGEX:(?insx)/[^\?/]*\.(css|ico|jpg|png|gif|bmp|wav|js|jpeg)(\?.*)?$

  • 设置断点
  • 自动响应
  1. 进入AutoResponder
  2. 选择列表左侧请求,点击【Add Rule】添加mock请求(或点击【Add Rule】手动填写请求地址)
  3. 选择响应结果,模拟测试场景(此处支持打开本地文件,根据文件响应数据(例如json文件)进行mock)
  4. 点击右下角【save】,保存响应设置
  5. 勾选上方选项:
    (1)Enable rules :开启禁用自动重定向功能,勾选上时,激活规则
    (2)Unmatched requests passthrough:未匹配的请求穿透,即勾选上时,不影响那些没满足我们处理条件的请求
    (3)勾选了这个选项,在规则里面就可以设置是立即返回响应,还是隔多少毫秒返回响应

HTTPS请求(扩展)

  • 抓取https需要配置,如图



fiddler抓包之接口基础概述

  • 抓到了我们想要的接口,接口请求怎么看,,我们要先知道什么是接口。

  • 接口的基本概念

    • 项目:
    • 前端:前端是肉眼所能看见的界面
    • 后端:处理数据,数据逻辑的,如淘宝铅笔一块,两块三块运算
    • 接口:提供前后端交互
    • 接口标准:
      网络协议://IP地址:port/url=页面路径?参数
      网络协议:https http
      IP地址/域名:39.167.900.145/www.baidu.com,一个ip地址可以对应多个域名
      端口号port:443,80

    HTTP协议请求响应报文详解

    抓到接口选择fiddler右边inspectors检查,看Raw里面,这里有接口的信息,看接口地址接口参数、请求方式、响应内容

    • headers:发送给请求头的信息,要关注请求类型,这个类型规定了我们发送的参数要求以这个类型发送
    • textView:参数的文本
    • Syntaxview:参数的加强版
    • webForms:显示请求的GET参数和POST body内容,特别说明,这里body是application/x-www/form/urlen-coded格式
    • HexView:用十六进制数据显示请求
    • Auth:显示header中的Proxy-Authorization和Authorization信息
    • Cookies:请求发送的cookies信息
    • Raw:将整个请求显示为纯文本
    • Json:如果请求的body是json格式,就是用分级的Json来显示它
    • XML:如果请求的body是XML格式,就是用分级的XML树来显示他
  • 响应部分内容

    • Transformer:显示响应的编码信息
    • Headers:用分级视图显示响应的header
    • TextView:使用文本显示相应的body
    • Syntaxview:为Textview的加强版,查看语法高亮的响应内容
    • ImageView:如果是请求是图片资源,显示响应的图片
    • HexView:用十六进制数据显示响应
    • WebView:响应在Web浏览器中的预览效果
    • Auth:显示响应中的Proxy-Authorization和Authorization信息
    • Cashing:显示此请求的缓存信息
    • Cookies:显示此请求的cookies信息,私密P3PHeader信息
    • Raw:将整个响应显示为纯文本
    • XML:如果响应的body是XML格式,就是用分级的XML树来显示它

fiddler弱网测试

日常进地铁上公交进电梯等,如果app没有对各种网络异常进行兼容处理,那么用户可能在日常生活中遇到app闪退、anr、数据丢失等问题

  • 网络设置:
    Rules->Performances->Simulate Moderm Speeds:模拟调制解调器的速度
  • 想要自己设置网络,可以更改网络速度
    Rules->Customize Rules(快捷键Ctrl+R)打开Fiddler ScriptEditor,接着Ctrl+F查找m_SimulateModem标志位。默认上传300ms,下载150ms。更改后继续Rules->Performances->Simulate Moderm Speeds选择速度

fiddler模拟mock数据

  • mock:mock测试就是在测试过程中,对于某些不容易构成或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法创建假数据
比如:现在有个登录下单支付的一个流程要测试。 现在开发没写完登录的接口,我没法进行后面的测试, 我就可以用mock去测试,使用fiddler模拟登录成功的接口。 怎么做:选择AutoResponser,勾选enable rules 1.创建一个文本写入你需要的数据 2.然后在选择一个接口,添加你的数据 3.save保存






fiddler 篡改数据

1、打开fiddler之后 2、对获取的请求进行挑选,选择对自己想要的那一条 3、添加断点,在fiddler下方的命令窗口,bpu URL回车,添加该请求断点成功 4、点击工具栏中Replay,点击下方出现的请求(还未返回),对webForm中的值进行修改。如下图:

对抓取到的登录接口断点测试

命令行窗口输入bpu,然后将选中的请求拖到bpu后面回车


修改用户名或密码,点击run to compl

5、点击run to comple后,出现返回JSON 6、取消断点:命令窗口输入bpu然后空格回车即可取消
http://www.jsqmd.com/news/669295/

相关文章:

  • 2026年3月国内机加工实力厂家,非标自动化设备设计/非标不锈钢钣金/工具柜,机加工实力厂家哪家好 - 品牌推荐师
  • 从Clover到OC:我的戴尔G7笔记本黑苹果升级踩坑全记录(附完整EFI)
  • C# .NET 与 SAP RFC 接口交互:从参数映射到实战封装
  • 题解:AcWing 1021 货币系统
  • uni-app怎么获取微信小程序的当前运行版本 uni-app判断开发版与线上版【技巧】
  • 如何快速上手PushNotifications:5分钟学会iOS和Android推送测试
  • 电子元件知识汇总4-采购与真伪识别
  • 如何防止SQL并发更新冲突_利用触发器实现悲观锁定机制
  • Skills到底怎么装?本地、ClawHub、命令行,三种方式全拆解
  • Faster RCNN 演进之路 01-基石篇:从RCNN到RoI Pooling的核心思想与代码实践
  • 驭势科技通过上市聆讯:年营收3.3亿亏2亿 格灵深瞳与创新工场是股东
  • eslint-plugin-security未来展望:安全检测技术的发展趋势
  • 从CPU到外设:实战解析AHB5总线在GD32/RISC-V SoC中的互连设计与性能调优
  • 2026年比较好的洁净室净化板源头工厂推荐 - 品牌宣传支持者
  • 题解:AcWing 1072 树的最长路径
  • 华为S5735S交换机iStack堆叠实战:从零配置到业务上线
  • 减肥药企业Kailera上市:市值超30亿美元 恒瑞医药成大赢家 CFO才任命3个月
  • 新手入坑必看!《另一个伊甸》日服全角色简称/昵称对照表(附最新AS/ES形态说明)
  • 微信每日说Docker部署完整教程:快速搭建稳定运行环境
  • PyRobot故障排除大全:解决常见问题的完整解决方案
  • C语言程序员常卡住的3个问题
  • Mac常用快捷键与效率插件指南
  • 题解:AcWing 532 货币系统
  • 为什么宝塔面板误删网站数据库无法通过回收站恢复_需依赖面板先前的定时备份或底层数据快照
  • 还在半夜盯监控?用大模型做运维,能不能把人“解放”出来?
  • MP4Box.js与Media Source Extension的完美结合:构建现代Web视频播放器
  • SVN使用教程
  • 2026年靠谱的定制纸碗纸杯厂/9盎司纸杯厂稳定供货厂家推荐 - 行业平台推荐
  • Edge/Chrome通用!Automa插件进阶玩法:变量、循环与条件判断实战解析
  • Android Studio中文插件终极指南:3步搞定界面汉化,开发效率翻倍!