如何用fiddler造出满意的接口返回数据

为何要引入Fiddler工具?

前端页面有异常,多半跟返回数据有关,需截包查看接口出入参比对数据。对于正常操作很难出现(可能是今天是周六,但是我要股票交易的数据)的数据,需造数据(可以数据库造数据,但不一定有权限)。Fiddler可以截包,又可以=支持对服务器响应更改数据后返回很好的解决了以上问题。

目前我们这边前端app开发模式是“H5 + 壳子”的模式。大多数页面接口可以通过浏览器访问H5页面查看接口出入参。但涉及需要与真机或者壳子相关的接口访问,仅仅靠H5就无法模拟了。简单的解决方法是:使用真机 + fiddler截包工具。

一、如何使用fiddler截包?

1、下载安装好fiddler后,打开fiddler 配置端口

端口默认为8888,如果有冲突,可更改为其他端口

选择Tools à Telerik Fiddler Options… à Connections à Fiddler listens on port xxxx

如下图:

1.png

2、配置抓取https

现在大多数都支持https,抓取https需配置fiddler

选择Tools à Telerik Fiddler Options… à HTTPS

如下图

2.png

3、手机设置fiddler代理

手机连接与电脑连接同一个wifi(手机与电脑连接同一网段网络也可以),手机上设置代理地址、端口(fiddler机子的ip与fiddler配置的端口)。

3.png

上述步骤配置好后,发出的接口请求会被fiddler记录下来。

二、如何用fiddler修改接口返回的数据

作为前端测试人员,仅仅会截包,可能还不够。很多时候,会有这么一个场景。需要造一个接口中某个字段的数据,不得不经过一系列繁杂的操作。还会有这么一个场景,你要造一组数据当日成交数据,但是今天是周六。你会选择无奈的摇摇头,还是会想办法造出数据呢?

1、 fiddler过滤出指定地址的请求数据

在 Filters下选择show only the following Hosts。在输入框中输入域名或ip,配置多个域名或ip中间用分号隔开。如下图:

4.png

2、 过滤出指定请求接口的数据

如果一个页面请求接口数太多,你可能会考虑只过滤出某一个或某几个接口的数据。

在 Filters下的Request Headers栏勾选show only if URL contains。在输入框内,输入接口名称。过滤多个接口中间需使用空格隔开。

5.png

3、 设置对接口返回数据拦截

左下角第三栏点击,只至出现如图图标(一个向下的箭头)

6.png

4、 修改response数据。

请求数据发出后,服务端的返回数据会被fiddler拦截,如图出现一个向下箭头的图标:

7.png

返回数据被编码,所以要先解码,如下图,点击即可。

8.png

切换至Textview栏,对数据进行修改,得到你所需要的数据,修改完毕后,点击“Run to Completion”即可。

9.png

至此,可以在前端页面查看数据篡改过的效果。

<think>好的,我现在要解决的问题是用户想知道如何在使用Fiddler捕获接口返回数据后,调用本地的Python脚本进行解密。我需要根据提供的引用内容来构建一个合理的步骤指南,并确保符合系统级指令的要求。 首先,用户提到使用Fiddler捕获数据,然后调用Python脚本解密。根据引用[1],解密过程括确定数据来源、抓分析、识别加密逻辑、编写脚本、验证调试、集成部署。引用[2]和[3]提供了关于处理JSON数据和使用Fiddler的具体方法。 第一步,我需要说明如何设置Fiddler来捕获HTTPS流量,这涉及到安装证书和配置过滤条件,这部分在引用[3]中有提到。然后,用户需要捕获目标接口的响应数据,可能含加密内容,比如JSON格式的数据,引用[2]指出如何处理JSON数据。 接下来,分析加密逻辑是关键。根据引用[1],需要查看前端代码或响应中的加密参数,可能涉及AES、RSA等算法。然后编写Python解密脚本,使用相应的库如pycryptodome,引用[1]提到了编写脚本的步骤。 然后,如何将Fiddler捕获的数据传递给Python脚本?可能需要使用AutoResponder功能,或者通过中间文件传递,或者实时调用脚本。这里可能需要结合引用[3]中的Fiddler教程,设置断点或自定义脚本。 验证和调试部分需要确保解密后的数据正确,引用[1]也强调了这一点。最后集成到爬虫系统中,可能需要自动化处理,如引用[2]提到的将JSON数据写入CSV。 需要注意的是,所有行内数学表达式要用$...$,比如加密算法中的参数,例如$key$、$IV$。独立公式如果有的话需要用$$...$$,但可能这里不需要。同时生成相关问题,比如如何识别加密算法、处理非对称加密等。 检查LaTeX语法是否正确,用中文回答,结构清晰。引用标识放在相关步骤后面,比如在抓分析后加上[^3],编写脚本引用[^1]等。 现在组织步骤:目标分析、抓设置、捕获数据、分析加密、编写脚本、调用脚本的方法、验证调试、集成。每个步骤结合引用内容,并自然添加引用标识。 最后生成相关问题,如Fiddler如何捕获HTTPS、处理加密参数、实时调用脚本等。</think>在Fiddler捕获接口返回数据后,调用本地Python脚本解密的步骤如下: --- ### 一、Fiddler捕获数据设置 1. **配置HTTPS捕获** - 打开Fiddler > `Tools > Options > HTTPS`,勾选`Decrypt HTTPS traffic`安装证书[^3]。 - 设置过滤器(如`Hosts`或`URI`)精准捕获目标接口响应数据。 2. **捕获目标接口** - 触发目标接口请求(如网页/APP操作),在Fiddler会话列表中找到对应响应。 - 若响应数据为加密内容(如Base64字符串或二进制),需进一步处理。 --- ### 二、分析加密逻辑 1. **定位加密参数** - 查看响应头或Body中的加密标识,例如`encryptKey`、`iv`或`algorithm`字段[^1]。 - 结合前端代码(如JavaScript)逆向推断加密算法(如AES、RSA)[^1]。 2. **示例加密数据** - 若响应为JSON格式:`{"data": "U2FsdGVkX18tJ9eZJA3Gz7..."}`,其中`data`字段为加密字符串[^2]。 --- ### 三、Python解密脚本实现 1. **编写解密函数** - 根据加密算法调用对应库(如`pycryptodome`处理AES): ```python from Crypto.Cipher import AES import base64 def decrypt_data(encrypted_data, key, iv): cipher = AES.new(key.encode('utf-8'), AES.MODE_CBC, iv.encode('utf-8')) decrypted = cipher.decrypt(base64.b64decode(encrypted_data)) return decrypted.decode('utf-8').strip() ``` 2. **参数提取** - 密钥($key$)和初始向量($iv$)可能通过接口动态获取或硬编码在前端[^1]。 --- ### 四、Fiddler调用Python脚本 #### 方法1:通过AutoResponder转发 1. 将加密响应保存为文件(如`encrypted.json`)。 2. 在Fiddler的`AutoResponder`中添加规则,匹配目标接口后执行本地脚本: ```python import subprocess result = subprocess.run(["python", "decrypt.py", "encrypted.json"], capture_output=True) decrypted_data = result.stdout ``` #### 方法2:实时调用脚本 1. 使用FiddlerScript(Fiddler内置的JScript.NET)在响应时触发外部命令: ```jscript if (oSession.uriContains("target_api")) { var command = "python C:\\decrypt.py \"" + oSession.GetResponseBodyAsString() + "\""; var result = System.Diagnostics.Process.Start("cmd.exe", "/C " + command); } ``` --- ### 五、验证与集成 1. **调试脚本** - 单独运行脚本,输入测试数据验证输出是否符合预期。 2. **集成到爬虫系统** - 将解密逻辑嵌入爬虫框架(如Scrapy),直接处理Fiddler导出的数据---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值