
简介这份资源面向对网络抓包与接口调试感兴趣的学习者围绕 Fiddler 工具在移动端场景下的抓包与请求参数分析展开帮助读者理解客户端与服务器之间的数据交互过程适合具备一定网络基础、希望熟悉抓包工具配置与请求拦截思路的初中级开发者参考。压缩包共 52 个文件约 10.62MB包含 exe 与 dll 组成的工具运行程序、dat 数据文件、wav 音频素材、txt 说明文档以及 config 配置与 js 脚本等覆盖工具安装、环境配置与操作演示多个环节。资源已有 9966 人学习下载具备一定的参考热度。内容以视频教程配合文档说明的形式呈现从模拟器环境搭建到 Fiddler 抓包配置、请求拦截与参数修改均有涉及读者可据此了解抓包工具的基本用法与调试流程并借助配套工具快速复现演示环境适合作为接口调试与网络请求分析的入门练习材料。1. 抓包改价这件事先想清楚边界再动手电商结算页面上那个“应付金额”从浏览器到服务器之间要经过好几跳每一跳都可能被人为干预。这份资源包的核心就是围绕 Fiddler 这个 HTTP/HTTPS 调试代理把“请求发出—拦截—改字段—放行—看结果”这条链路完整走一遍配套的工具和操作步骤都打包在压缩包里。它适合两类人一类是做前端或测试的从业者想搞清楚自己负责的页面在传输层到底暴露了什么另一类是安全初学者需要一个能上手的环境理解代理拦截的基本原理。需要先把话说在前面这套东西只应该在你自己的测试环境、你自己有权限的系统上跑拿它去动真实交易系统性质就完全变了不在讨论范围内。下面按“工具怎么配—请求怎么拦—字段怎么改—结果怎么验—坑在哪”的顺序拆开讲。2. Fiddler 的证书与代理链路让 HTTPS 请求能被看见2.1 为什么必须先解决证书这关Fiddler 的工作方式是把自己插在客户端和服务器中间当“中间人”客户端以为在跟服务器说话其实是在跟 Fiddler 说话Fiddler 再替客户端去跟服务器要数据。HTTP 明文请求这一步没什么门槛但现在的结算页面几乎全是 HTTPSFiddler 要解密就得给客户端出示一张自己签的证书。客户端不认这张证书连接就会直接断掉表现就是浏览器一片红、App 里请求全部失败。所以证书安装不是可选项是整个流程的第一道门槛装不对后面全是白忙。常见做法是让 Fiddler 生成根证书再把这个根证书装到操作系统的受信任根证书区。PC 端相对简单移动端要额外注意Android 7 以后用户手动安装的证书默认不被 App 信任只有系统级证书才认这是很多人卡住的地方。资源包里如果带了证书导出和安装的说明优先照着走没有的话下面这套流程是通用做法。2.2 开启解密并导出根证书先确认 Fiddler 的解密开关是打开的否则你只能看到 CONNECT 隧道看不到里面的明文。# Fiddler 图形界面操作路径无命令行等价物这里用步骤描述 # 1) Tools - Options - HTTPS # 2) 勾选 Capture HTTPS CONNECTs # 3) 勾选 Decrypt HTTPS traffic # 4) 弹窗提示安装证书时选择 Yes # 5) 点 Actions - Export Root Certificate to Desktop这几步的含义Capture HTTPS CONNECTs让 Fiddler 接管隧道连接Decrypt HTTPS traffic触发证书签发和替换Export Root Certificate to Desktop把根证书导成.cer文件方便往其他设备上装。导出后双击安装目标存储位置一定选“受信任的根证书颁发机构”选成“个人”是没用的这是第一个高频翻车点。2.3 把设备流量导到 Fiddler 上PC 端浏览器如果和 Fiddler 在同一台机器Fiddler 默认就会接管系统代理基本不用额外配置。移动端要手动设代理手机和电脑连同一个局域网在手机 Wi-Fi 设置里把代理改成“手动”主机名填电脑的局域网 IP端口填 Fiddler 监听的端口默认 8888。填完打开浏览器访问任意 HTTP 页面能在 Fiddler 里看到请求说明链路通了。# 查看本机局域网 IPWindows ipconfig # 关注“IPv4 地址”那一行例如 192.168.1.23 # 确认 Fiddler 监听端口 # Tools - Options - Connections # Fiddler listens on port: 8888 # 勾选 Allow remote computers to connectAllow remote computers to connect必须勾上否则手机发过来的请求会被 Fiddler 直接拒掉现象是手机端一直转圈、Fiddler 里干干净净。改完这个选项 Fiddler 会提示重启别忽略。端口 8888 是默认值如果被占用可以换但手机端代理端口要同步改两边对不上一样连不通。2.4 验证解密是否真的生效链路通不等于解密成功。判断标准很简单在 Fiddler 左侧会话列表里看目标请求的 Protocol 列是不是HTTPS点开 Inspectors 面板如果能看到完整的请求头、请求体和响应体说明解密成功如果只看到一条CONNECT请求、后面跟着200 Connection Established说明证书没被信任流量只是被隧道透传了内容依然是密文。提示移动端如果装完证书还是只看到 CONNECT先确认证书装到了“系统”还是“用户”区再确认目标 App 有没有做证书固定SSL Pinning。证书固定属于应用层防护Fiddler 这一层绕不过去遇到这种情况不要死磕换一个没有做固定的测试目标。3. 拦截结算请求定位金额字段与断点改包3.1 先看清一次下单请求长什么样改金额的前提是找到“哪个请求携带了金额”。正常操作是在设备上走一遍下单流程从选商品、加购物车到点结算全程让 Fiddler 处于抓包状态。结算动作触发的那一下会话列表里会冒出一批新请求重点看这几类提交订单的 POST 请求、查询价格的 GET 请求、以及可能存在的预校验接口。判断方法看 URL 路径里的关键词常见的是order、submit、confirm、price、amount这类命名。找到候选请求后点开 Inspectors - WebForms 或 JSON 视图看请求体里有没有形如totalPrice、payAmount、goodsAmount、discount的字段。金额字段的典型特征是值是数字、带两位小数、和页面上显示的数字对得上。对上了基本就锁定目标了。3.2 用断点把请求拦在半路Fiddler 的断点分两种请求前断点Before Requests和响应后断点After Responses。改请求参数用前者改返回结果用后者。最省事的做法是对单条会话下断点在会话列表里右键目标请求选Break on Request然后重新触发一次下单请求就会停在 Fiddler 里等你处理。# 全局断点快捷键Fiddler 内置 # F8 切换 Before Requests 断点开关 # F9 切换 After Responses 断点开关 # 单条会话断点右键 - Break on Request / Break on Response全局断点F8会把所有请求都拦下来流量一多根本处理不过来调试阶段建议用单条会话断点精准且不干扰其他请求。请求被拦下后会话列表里该条记录会出现一个红色图标此时请求还没有发往服务器你改什么服务器就收到什么。3.3 改字段并放行请求停在断点状态时切到 Inspectors - TextView 或 WebForms直接编辑请求体里的金额字段。改完点Run to Completion放行Fiddler 会把修改后的请求发给服务器。# 修改前TextView 里的原始请求体示例 goodsId10086quantity1totalPrice299.00payAmount299.00couponId # 修改后 goodsId10086quantity1totalPrice0.01payAmount0.01couponId这里有两个参数层面的细节值得说清楚。第一totalPrice和payAmount往往要一起改只改一个另一个还是原值服务端做一致性校验时会对不上。第二金额的格式要跟原请求保持一致原来是两位小数就别写成0.01之外的奇怪格式有些后端会对字段做正则或类型校验格式不对直接返回参数错误你还以为是改价失败。改完放行后看响应体里的返回码和返回金额如果服务端返回的是“下单成功”且金额变成了你改的值说明这个接口在金额校验上是有漏洞的如果返回“金额校验失败”或“参数异常”说明服务端做了二次校验这个方向走不通。3.4 响应侧改包与它的局限有些场景请求侧改不动因为金额是服务端算的客户端只是展示。这时候可以试响应后断点让请求正常发出服务器返回真实金额在响应回到客户端之前把响应体里的金额改掉。操作上右键选Break on Response请求发出后停在响应阶段编辑响应 JSON 里的金额字段再放行。// 响应体修改示例仅用于理解字段结构 { code: 0, data: { orderId: 202401010001, payAmount: 299.00, status: WAIT_PAY } }必须清楚这种改法的边界它只改了客户端看到和展示的数字服务端记录的订单金额还是原值。真正发起支付时支付网关会拿服务端的订单金额去扣款客户端显示 0.01 但实际扣 299 的情况就是这么来的。所以响应侧改包只能验证“前端是否信任后端返回值”不能证明“支付链路可被篡改”两者是完全不同的安全问题别混为一谈。4. 避坑与排查五个真实会卡住你的地方4.1 现象手机连上代理后所有 App 都断网原因通常是证书没装或装错位置。Android 7 以后用户证书不被 App 信任iOS 则需要在“设置—通用—关于本机—证书信任设置”里手动把根证书开关打开很多人只装了描述文件没开信任开关。解决Android 测试机如果有 root 权限把证书放到系统证书目录没有 root 就换用模拟器或降级测试环境。iOS 记得去证书信任设置里确认开关是绿的。4.2 现象Fiddler 里能看到请求但 Inspectors 面板是空的原因是解密没生效流量走了隧道透传。回到 2.2 检查Decrypt HTTPS traffic是否勾选再确认客户端信任的是不是当前这台 Fiddler 导出的那张证书。换过电脑或重装过 Fiddler 后旧证书会失效需要重新导出安装这个细节很容易被忽略。4.3 现象改了金额放行后页面提示“请求参数错误”原因多半是字段格式或必填项被破坏。手工编辑请求体时容易多删一个、少一个等号或者把数字改成了带引号的字符串。解决改之前先把原始请求体复制一份到文本编辑器里对照只动目标字段的值结构一个字符都别碰。另外注意 URL 编码某些字段的值里含特殊字符时直接改明文可能导致解析失败。4.4 现象请求侧改价成功但支付时金额又变回原价原因是服务端在下单和支付两个环节各算了一次金额你改的是下单请求支付时服务端重新按商品单价计算。这属于正常的服务端校验逻辑不是工具问题。遇到这种情况说明该系统的金额计算不依赖客户端传值请求侧改包这条路对它无效应该转向检查服务端是否存在其他逻辑缺陷而不是继续在客户端死磕。4.5 现象Fiddler 抓不到某个 App 的任何请求原因可能是该 App 走了自定义网络库、用了非标准端口或者做了证书固定。先确认代理设置对全局生效有些 App 会忽略系统代理再检查 Fiddler 的 Connections 设置里端口和远程连接开关。如果确认代理生效但依然抓不到明文大概率是证书固定这类防护在应用层实现代理层无法绕过属于预期内的失败不必在这上面耗时间。5. 从改一个字段到看懂一整条链路我的验证习惯改价这件事本身不复杂复杂的是判断“改完之后到底证明了什么”。我自己的习惯是每改一个字段都强制走一遍三段验证第一段看请求是否真的被修改后发出在 Fiddler 的请求详情里确认发出的报文和你编辑的一致第二段看服务端响应返回码、返回体里的金额、订单状态三个信息一起看只看到“成功”两个字不算数第三段回到业务页面刷新后看展示金额和订单详情是否同步变化。三段里任何一段对不上都说明中间有环节在纠正你的修改这时候要停下来分析是哪一层做的校验而不是继续换字段试。下面这张表是我排查时常用的对照把现象和可能的校验层对应起来能少走不少弯路现象大概率校验层下一步动作请求发出即返回参数错误客户端或网关字段校验检查字段格式与必填项下单成功但支付金额复原服务端下单/支付二次计算确认金额是否由服务端独立计算响应改了但页面不刷新前端缓存或状态管理强制刷新、清缓存后复看全程只看到 CONNECT证书未信任或证书固定先解决证书再判断是否固定还有一个容易被忽略的点改包验证要在干净的环境里做浏览器插件、其他代理工具、系统级抓包软件都可能干扰 Fiddler 的接管出现“明明改了却没生效”的玄学现象时先把其他网络工具全关掉再试。我吃过这个亏排查了半天以为是服务端校验结果是另一个代理在中间又改回去了。从那以后我每次做这类验证都强制先跑一遍“空改”基线不改任何字段只下断点然后原样放行确认请求能正常走完、响应正常返回再开始动字段。基线不通就先修链路基线通了再谈改包这样能把工具问题和业务问题彻底分开。希望这套流程帮到你少在证书和代理这些前置环节上耗时间把精力留给真正值得分析的校验逻辑。本文还有配套的精品资源点击获取