使用fiddler篡改接口请求或返回的内容

使用fiddler篡改接口请求或返回的内容
背景说明
篡改接口请求或返回的内容,会有什么影响?下面这些新闻,你或许有听说过。
使用fiddler篡改接口请求或返回的内容
因此,公司投入线上运营的产品中,涉及到与金额相关的流程,需要通过接口测试篡改请求和返回内容,验证项目是否做了此类的安全校验,避免公司产生不必要的财产损失。
fiddler工具我们日常的比较多的是抓包功能,该文档主要是针对如何使用fiddler篡改接口请求和返回内容的方法做出说明。
Fiddler篡改数据包的原理,以修改订单支付金额为例,如下图:
使用fiddler篡改接口请求或返回的内容
假如篡改的是支付的金额,拦截发往服务器的请求并修改金额后发给服务器,拦截服务器返回的支付成功的消息并修改金额发回给网页,网页就会误以为支付已经成功
fiddler安装
fiddler官网下载地址:https://www.telerik.com/fiddler,可下载最新版本安装使用。

默认点击下一步安装即可,安装完成后,直接打开fiddler运行。
fiddler打断点
fiddler工具有三种方式打断点,断点的影响范围不同,可根据测试需要选择打断点的方式。
3.1 bpu命令行方式构造指定请求断点
影响范围:仅影响指定URL操作时,会被fiddler拦截
使用该方法,首先我们需要明确知道,我们需要构造断点的请求URL。然后在fiddler下方的命令行中,输入:bpu+空格+URL,然后回车,当我们操作该接口对应的功能,被fiddler抓包识别时,对应的操作在界面中就会显示为加载中,此时,我们可以在fiddler工具中,修改该接口对应的请求或返回的数据内容,伪造请求数据或返回结果。
构造断点:输入bpu+空格+URL,回车
取消断点:输入bpu,回车
使用fiddler篡改接口请求或返回的内容
URL成功被拦截时,在fiddler中的显示如下图:
使用fiddler篡改接口请求或返回的内容

3.2 Automatic Breakpoints配置请求或返回类型断点
影响范围:所有操作的请求,或返回,都会被拦截
使用方法:fiddler工具点击Rules-Automatic Breakpoints,选择Before Requests(在请求之前拦截)或After Responses(在返回结果之后拦截)。如果需要取消拦截,选择Disabled即可。
使用fiddler篡改接口请求或返回的内容
3.3 快捷方式拦截指定类型所有内容
在fiddler工具最下一行,第三列点击,可直接达到3.2的配置效果。
点击一次:在发送请求之前拦截
点击两次:在返回结果之后拦截
点击三次:取消拦截
使用fiddler篡改接口请求或返回的内容
fiddler篡改数据
当前拦截的是请求接口时,可修改请求中的参数内容。如果当前拦截的是返回结果,可修改返回中的数据内容。一下用可视化修改商户调车订单的支付金额为例做出说明:
登录商户后台,登录成功
商户点击【预约用车】,填写用车条件后,点击【提交】,进入到用车列表
fiddler工具使用3.3的方式,点击一次,在发送请求之前拦截
使用fiddler篡改接口请求或返回的内容
商户在用车列表中,选择一个车型点击【申请用车】,此时后台页面显示加载中
使用fiddler篡改接口请求或返回的内容
fiddler查看拦截到一个请求,选择Inspectors-Raw,查看请求的接口中,包含订单的支付金额,修改支付金额为“1”,
使用fiddler篡改接口请求或返回的内容
选择【Break on Renponse】(拦截下一个返回的内容)后,自动以当前修改后的参数发送请求,并在返回内容时再次被拦截,返回的内容是在右下方的Raw中查看。
使用fiddler篡改接口请求或返回的内容
此时,就可以修改返回的内容,将返回的结果替换为其他内容,点击【Run to Completion】继续运行。

以上就是使用fiddler篡改数据包的步骤,测试过程中我们可以举一反三,不仅仅是修改订单支付金额,也可以尝试测试修改一些其他的重要数据,或在支付的不同阶段来修改请求参数和返回内容,来验证程序是否有做合理的判断校验。
fiddler其他常用小知识
5.1 抓包时过滤指定请求
因为fiddler工具会抓取web端的所有请求,当我们操作指定平台时,有一些其他网页的请求也会被工具抓取到,不容易找到我们自己的操作请求。这个时候可以使用filters功能过滤指定的请求内容。操作方法:
步骤一、点击Filters,选择Use Filters
步骤二、Hosts的第一个选项内容不用修改,第二个选项内容,选择为“Show only the following Hosts”
步骤三、在下方输入我们想要过滤的域名或IP地址,以英文的分号间隔开。
步骤四、点击Actions应用生效,此后fiddler抓包的内容就是我们要求过滤的指定内容了。
使用fiddler篡改接口请求或返回的内容
5.2 移动端连接fiddler
备注:如果移动端想要使用fiddler监听,首先我们的Fiddler所在的电脑和手机必须处在同一个局域网内(即连着同一个路由器)

查看fiddler使用的端口
Tools-Options-Connections,查看工具使用的端口。勾选Allow remote computers to connect选项,弹出的提示框直接点击OK
使用fiddler篡改接口请求或返回的内容
查看本机IP地址
cmd命令行,输入ipconfig,查看本机IP地址
使用fiddler篡改接口请求或返回的内容
手机设置代理
手机当前连接的wifi,修改代理为手动,IP和端口号为前面查到的内容
手机安装证书
在手机浏览器一栏输入电脑的IP地址和端口号
这里我是192.168.1.128:50879
进入一个网页,点击最下面那个FiddlerRoot certificate下载证书,下载成功后在设置里面安装
安卓安装步骤:打开高级设置->安全->从SD卡安装证书->找到证书文件->点击后为证书命名点击确定即可安装成功(具体过程请根据实际机型百度查找,关键词是从SD卡安装证书)
IOS安装步骤:打开设置-通用-描述文件与设备管理,找到我们下载到的fiddler的证书进行安装信任
移动端操作,查看fiddler工具抓包成功
使用fiddler篡改接口请求或返回的内容

该文档部分内容参考以下网址:
https://www.jianshu.com/p/4505693bdaa2?from=groupmessage
https://www.cnblogs.com/yanmou/p/9447790.html
https://blog.csdn.net/zhezhebie/article/details/80669691
https://blog.csdn.net/ychgyyn/article/details/82154433