使用 Fiddler 测试接口安全 Fiddler 的运行机制、安装 Fiddler、iddler的Response的消息结构、Fiddler捕获请求、Fiddler 的 Response 乱码解决、使用 Fiddler 实现接口测试、伪造数据
1、什么是 Fiddler
Fiddler 是强大且好用的 Web 调试工具之一,它能记录客户端和服务器的 http 和 https 请求,允许你监视,设置断点,甚至修改输入输出数据。
2、 Fiddler 的运行机制
- 本机上监听 8888 端口的 HTTP 代理。
- 对于 PC 端 Fiddler 启动的时候默认 IE 的代理设为了 127.0.0.1:8888,而其他浏览器是 需要手动设置的,所以如果需要监听 PC 端 Chrome 网络请求,将其代理改为 127.0.0.1:8888 就可以监听数据。
3、安装 Fiddler
1)安装 NDP451
Microsoft .NET Framework 4.5.1 ,是微软的一个基础接口程序
2) 安装 fiddler4
3) 安装 fiddlerSyntax
链接:https://pan.baidu.com/s/17s1070v_GKS3iVlfItb6Eg
提取码:6l2b
4、Fiddler 主界面
5、 Fiddler会话区
- #:顺序号,按照抓包的顺序从1递增
- Result:HTTP状态码
- Protocol:请求使用的协议,如HTTP/HTTPS/FTP等
- HOST:请求地址的主机名或域名
- URL:请求资源的位置(路径)
- Body:请求大小
- Caching:请求的缓存过期时间或者缓存控制值
- Content-Type:请求响应的类型
- Process:发送此请求的进程
- Comments:备注
- Custom:自定义值
6、Fiddler 的 HTTP 统计视图
- 请求总数、请求包大小、响应包大小。
- 请求起始时间、响应结束时间、握手时间、等待时间、路由时间、TCP/IP、传输时间。
- HTTP状态码统计。
- 返回的各种类型数据的大小统计以及饼图展现。
7、Fiddler的监控面板(Inspector)
- Headers:信息头,若用手机和电脑打开的页面不一样,与此设置有关。
- TextView:以文本形式显示请求或响应的数据。
- SyntaxView:同TextView,但有语法着色。
- WebForms:请求部分以表单形式显示所有的请求参数和参数值;响应部分与TextView内容是一样的。
- HEX:十六进制形式的数据。
- Auth:显示认证信息,如Authorization。
- Cookies:显示所有cookies。
- Raw:显示Headers和Body数据。
- JSON:请求或响应数据是json格式时,json形式显示请求或响应内容。
- XML:请求或响应数据是xml格式,xml形式显示请求或响应内容。
8、 Fiddler的Request消息结构
- POST:请求方式,HTTP/1.1表示协议与版本
- Accept:浏览器端可接受的媒体类型
- Referer:告诉服务器是从哪个页面链接过来的
- Accept-Language:语言类型
- Accept-Encoding:压缩方法
- User-Agent:客户端使用的操作系统和浏览器的名称和版本
- Connection:网页打开后,客户端和服务器之间用于传输数据的TCP连接是否关闭,keep-alive表示不会关闭,客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接
- COOKIE:将cookie值发送给服务器
9、 Fiddler的Response的消息结构
Ø HTTP/1.1:协议,200:状态码,OK响应消息文本
-
Ø Cache-Control:private的消息不能被共享缓存处理,对于其他用户的请求无效
Ø Content-Type:charset:告知客户端服务器本身响应的对象的类型和字符集
Ø Expires:浏览器会在指定过期时间内使用本地缓存
Ø Last-Modified:客户端请求的资源文件在服务器端最后被修改的时间
Ø Date:生成消息的具体时间和日期
Ø Content-Length:正文长度
Ø Set-Cookie:把cookie发送到客户端
10、 Fiddler捕获请求
1)使用过滤器抓包
--》保存过滤器
--》下次进入加载点击Load Filterset进行加载
2)Fiddler 的 Response 乱码解决
ü 进入注册表
² HKEY_CURRENT_USER\Software\Microsoft\Fiddler2
² 新建字符串值:HeaderEncoding,值设置为GBK
² 重启Fiddler
--》搜索输入regedit
-->找到HKEY_CURRENT_USER\Software\Microsoft\Fiddler2,右击新建字符串值
--》输入HeaderEncoding,值设置为 GBK
3)HTML页面被压缩
ü 通过两种方法去解压缩。
² 方法一:点击红框内容“Response body is encouded.Click to decode.”
² 方法二:选中工具栏中的"Decode",这样会自动解压缩。
使用 Fiddler 实现接口测试
1) 测试登录接口,不进行登录使用cookie欺骗进入网站
--》 抓包,完成后退出
输入http://192.168.109.208:1080/webtours/,进行登录,登陆成功后,关闭浏览器
--》 选中需要测试的url,找到并复制请求部分raw中的cookie整行
--》 重新启动Fiddler
--》 Composer→Parsed
ü Composer
ü 输入越权访问的url
ü 粘贴Cookie
ü 执行越权url
² Execute
--》查看webview发现当前用户可以登录
--》将cookie中的用户名换成不存在的用户名,再次进行execute,发现
2)传递非法参数
ü 方法1
² 在Fiddler中设置抓包
² 选择url,F2,修改参数
² 回放url
² 查看响应数据或后台数据
--》修改参数
---》回放URL
--》查看响应,数据表被修改
ü 方法2
² Composer
l 选择get或post方法
l 输入url,url后应携带/
l post方法应添加 Content-Type: application/x-www-form-urlencoded
l 参数
n get方法直接在url/后写
u ?参数名1=值1&参数名2=值2
n post方法在RequestBody中写
u 参数名1=值1&参数名2=值2
l Execute
-->get请求
--》post
伪造数据
设置断点修改 Request,使用此方式伪造或篡改数据;攻击 Webtours 付款接口
1) 无需截获数据流(抓包),在浏览器中打开将数据(如价格)发给服务器的页面,停止操作
--》取消抓包
--》停到某个需要提交数据的页面
2) 在Fiddler中设置抓包和拦截请求
朝下箭头表示响应,朝上箭头表示请求
3) 返回软件操作,给服务器发送数据
4) 拦截完成,篡改将要发送的数据,点击Break on Response,点击Run to Completion
5)在Fiddler中取消抓包和拦截请求
6) 浏览器已经进入下一个页面,继续操作;继续后续操作,到完成
7) 查看后台数据,数据被修改
文档来源:尚学堂。百战程序员
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~