怎么通过Fiddler对APP进行抓包?以及高级应用场景分析

前言

我们经常需要用到Fiddler做代理服务器对Web、APP应用进行抓包,以便我们对接口功能进行测试调试,定位问题等。这篇将讲述怎么通过Fiddler对APP进行抓包,以及简单介绍一些高级应用场景。

首先,附上Fiddler使用的环境配置清单:

  • windows 7
  • Fiddler v5.0.20194.41348 

简单说下Fiddler的抓包原理:

由Fiddler作为代理服务器,手机发起的请求通过该代理器进行中转,从而fiddler记录下请求的通信数据信息。来一个形象的比喻:原来直连两端(服务器和APP端)的一根水管,现在中间多加了一个水箱(fiddler),水流通过水箱并记录下了水流的信息。(思考下:如果是直连两端的两根循环水管,我们中间都接上水箱可以做哪些操作?)

使用fiddler代理远程捕获APP请求

步骤一:在菜单栏(路径:Tools -> Fiddler Options)中找到代理设置,因为我的 8888 端口已经被其它服务占用,所以这里设置代理端口为 7788 。(注意:需要重启fiddler,代理设置才生效)

(注意:在windows下可以通过命令  netstat -ano|findstr 8888  查看 8888 端口是否被占用)

步骤二、查看自己本机的IP,这里有两种方式:

方式一:把鼠标移动到Fiddler右上角的 Online 图标上,即可获得本机IP信息。(推荐使用这种)

方式二:可以在cmd命令窗口中输入ipconfig获得(linux下输入ifconfig)。

步骤三、在手机中,找到与电脑所处同一局域网的WiFi并连接(可以不同网段,但需要在同一个局域网内),然后在手机中设置代理(通常路径: 手机 设置->WLAN-> 长按 当前连接的网络->修改网络-> 显示高级选项 中代理把 无 改为 手动)。输入代理服务的IP(即fiddler安装所在PC的IP),端口(即fiddler中设置的监听端口,如上面设置的7788)。这样以后,我们就可以监控到APP所有请求了。

步骤四、让我们随便在手机上打开一个应用(如日历),看看Fiddler的抓包结果

Fiddler高级应用场景介绍

1、url地址重写

URL 重写是截取传入 Web 请求并自动将请求重定向到其他 URL 的过程。如通过URL地址重写,所有原先发到a.com的HTTP Request , Fiddler都帮你转发到b.com ,而在浏览器中毫无感觉。 测试debug过程中常有这种需求。(注意,这里的a.com和b.com是请求URL包含的域名,也可以是IP)

替换的方法有两种,一种是暂时的,一种是永久的。

方式一、暂时的方法是在Fiddler 左下角 QuickExec 命令行 (用户可以直接输入并快速执行脚本命令) 输入:

<span style="color:#333333"><span style="background-color:#f5f5f5">urlreplace a.com b.com</span></span>

如上图,输入后按下Enter ,所有原先发到a.com 的HTTP Request 就转发到b.com了。

要清除转发,请在同一位置输入:

<span style="color:#333333"><span style="background-color:#f5f5f5">urlreplace</span></span>

按下 Enter  键就可以了。

2)也可以到「FiddlerScript 」直接编辑CustomRules.js(永久性的)。

注:CustomRules.js可以在菜单栏(Rules-> Customize Rules)中打开;在Fiddler5.0以上版本,可以直接通过右侧 FiddlerScripts 进行编辑。

请先在CustomRules.js 找到:

<span style="color:#333333"><span style="background-color:#f5f5f5">  static function OnBeforeRequest ( oSession : Session ) {// ...}</span></span>

在函式OnBeforeRequest 中加入:

<span style="color:#333333"><span style="background-color:#f5f5f5">  if ( oSession . HostnameIs ( 'a.com' ) )oSession . hostname = 'b.com' ;</span></span>

将CustomRules.js 存档, Fiddler 会自动重新载入CustomRules.js ,原先发到a.com 的HTTP Request 就会自动转发到b.com 。

2、HTTP请求,响应断点调试

断点命令介绍:

  • bpu 在请求开始时中断
  • bpafter 在响应到达时中断
  • bps 在特定http状态码时中断
  • bpv/bpm 在特定请求method时中断

当这些命令没有加参数时,会清空所有设置了断点的HTTP请求。

提示:在命令行输入 help,回车执行会打开一页面详细介绍fiddler的所有命令。

也可以在菜单栏(Rules-> Automatic Breakpoint ->Before Requests)设置断点,是针对所有的会话请求,不大实用,建议用命令。

以 bpu 为例演示断点功能:

在Fiddler命令行输入区输入“bpu”回车执行清掉原有的断点,然后输入

​
<span style="color:#333333"><span style="background-color:#f5f5f5">bpu http://api.justbon.com/app/login.htm</span></span>​

回车执行,接下来就会中断该URL(http://api.justbon.com/app/login.htm)中包含此地址的请求。

点击会话列表中被中断的会话,依次进入Inspectors-->TextView。此时请求并未发出,p参数即为输入密码,我们发现输入错了,可以修改为正确的密码,然后点击“Run to Completion”按钮完成后续请求。(注:在这里实现修改了请求数据,其它的post数据,甚至是headers里的cookie、referer、user-agent等都可以修改)

如果点击“Break on Response”:即返回响应内容时,fiddler再次中断,响应内容已经回到本机,但是还在fiddler代理这里,还没有到浏览器(APP)。

同样,bpafter 某一url 后,可以在断点时,修改返回结果(在上图 Run to Completion 按钮下的TextView 或 Raw 等tab页中进行修改),然后然后点击“Run to Completion”按钮完成后续结果返回。

小贴士:instpectors 主要是对请求和响应进行查看和分享,监听请求的响应内容。他有多个分页标签。界面分上下两部分,上面部分显示请求的相关信息;下面部分显示响应相关信息。

3、右侧功能简介

Statistics 统计请求和响应的一些信息。可以使用statistics,完成简单的性能测试。查看其接口的响应时间。

AutoResponder,就是针对一些匹配的请求,让请求者得到的我们指定的数据,而不是服务端返回的真实数据。可以直接从左侧会话面板直接拖拉会话到这个面板。

Composer 用户可以手动设定需要执行的请求(可以通过左侧的拖拽一个先前捕获到的请求到Composer,然后根据需要进行修改后,再点击“Execute”按钮手动执行该请求);

filter 选项页中,用户可以根据自己的需求设定过滤器,这样左侧列表只显示满足用户设定条件的请求;

Timeline 中查看到对应url具体执行的响应时长。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/154774.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MidJourney | AI绘画也有艺术

免费绘画&#xff0c;体验更多AI可关&注公&众&号&#xff1a;AI研究工厂

华测监测预警系统 2.2 存在任意文件读取漏洞

华测监测预警系统 2.2 存在任意文件读取漏洞 一、 华测监测预警系统 2.2 简介二、漏洞描述三、影响版本四、fofa查询语句五、漏洞复现1、手动复现2、自动复现 六、修复建议 免责声明&#xff1a;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信…

暴涨100万粉仅用一个月,B站内容趋势前线洞察

- 导语 在这个9月&#xff0c;B站涌现多位黑马UP主&#xff0c;有的UP主自入驻B站以来&#xff0c;一个月的时间就涨粉百万晋升为头部UP主&#xff0c;有的UP主因内容受到B站百万年轻人的追捧&#xff0c;展现账号爆发力。 接下来&#xff0c;飞瓜数据&#xff08;B站版&…

LCD1602驱动开发

目录 一、LCD1602简介 二、LCD1602的电路原理图 三、1602的引脚定义 四、通信协议 操作步骤: 五、LCD1602关键性的指令设置 1.清屏指令 2.进入模式设置指令 3.显示开关控制指令 4.功能设定指令 六、写入数据操作 1、地址的计算 2、RAM地址映射图 七、LCD1602函数驱…

基于DeOldify的给黑白照片、视频上色

老照片常常因为当时的技术限制而只有黑白版本。然而现代的 AI 技术&#xff0c;如 DeOldify&#xff0c;可以让这些照片重现色彩。 本教程将详细介绍如何使用 DeOldify 来给老照片上色。 文章目录 准备工作执行代码图片上色视频上色 总结 准备工作 这里用 git clone 命令克隆…

Windows下Mosquitto服务配置监听任何IP,搭配使用MQTTX

Mosquitto 默认只监听本地地址&#xff0c;想让它监听其他的IP和端口需要以下操作在mosquitto.conf文件最后加如下内容 allow_anonymous true listener 1883 0.0.0.0 在启动的时候只需要 .\mosquitto.exe -c .\mosquitto.conf -v 就可以了

数据库Mysql三大引擎(InnoDB、MyISAM、 Memory)与逻辑架构

MySQL数据库及其分支版本主要的存储引擎有InnoDB、MyISAM、 Memory等。简单地理解&#xff0c;存储引擎就是指表的类型以及表在计算机上的存储方式。存储引擎的概念是MySQL的特色&#xff0c;使用的是一个可插拔存储引擎架构&#xff0c;能够在运行的时候动态加载或者卸载这些存…

cuML机器学习GPU库

目录 一、开始安装 1、创建虚拟环境 2、激活该虚拟环境 3、安装cuML 4、安装ipykernel 5、在jupter上使用&#xff0c;所以需要配置一下新的内核 二、调试 1、原始机器学习库运行 2、cuml库运行 以下安装教程为基于Linux系统&#xff0c;cuda版本为11.3.109、驱动530.…

阶段六-Day03-MyBatis

一、框架介绍 1. 框架的作用 将许多项目封装起来,形成了框架 2. 框架的优缺点 1. 优点 1.1 更好用 框架都是对Java原生内容进行的封装&#xff0c;对于企业级项目开发来说&#xff0c;使用框架比使用原生Java更好用&#xff0c;写起来更简单。 1.2 更强大 框架封装过程…

Colab matplotlib画图如何显示中文字体【图例坐标轴均可显示中文】

Colab notebook用matplotlib画图中文出现方块&#xff1a; 如何解决这个问题呢&#xff1f; 运行wget -O simhei.ttf "https://www.wfonts.com/download/data/2014/06/01/simhei/chinese.simhei.ttf"&#xff0c;安装中文字体&#xff0c;这里装得是SimHei&#xf…

电脑上播放4K视频需要具备哪些条件?

在电视上播放 4K&#xff08; 4096 2160 像素&#xff09;视频是很简单的&#xff0c;但在电脑设备上播放 4K 视频并不容易。相反&#xff0c;它们有自己必须满足的硬件要求。 如果不满足要求&#xff0c;在电脑上打开 4K 分辨率文件或大型视频文件会导致卡顿、音频滞后以及更…

uniapp-vue3微信小程序实现全局分享

uniapp-vue3微信小程序实现全局分享 文章目录 uniapp-vue3微信小程序实现全局分享微信小程序官方文档的分享说明onShareAppMessage(Object object)onShareTimeline() uniapp 官方文档的分享说明onShareAppMessage(OBJECT) 实现全局分享代码结构如下share.js文件内容main.js注意…

Pushgateway的场景使用

1,Pushgateway简介 Pushgateway为Prometheus整体监控方案的功能组件之一,并做为一个独立的工具存在。它主要用于Prometheus无法直接拿到监控指标的场景,如监控源位于防火墙之后,Prometheus无法穿透防火墙;目标服务没有可抓取监控数据的端点等多种情况。在类似场景中,可通…

串口硬件流控RTS、CTS

为什么有时候要在RXD和TXD的基础上增加RTS、CTS&#xff1f; 当接收端的串口处理速度过低时&#xff0c;会丢失数据&#xff0c;因此考虑增加一种通知的机制来告诉发送端是否可以发送&#xff0c;即增加了RTS&#xff08;Require To Send&#xff09;和CTS&#xff08;Clear T…

用“和美”丈量中国丨走进酒博物馆系列⑨

五粮液酒文化博览馆始建于1988年&#xff0c;是中国酒业最早的酒文化博览馆&#xff0c;于2020年启动升级改造。 现在我们看到的五粮液酒文化博览馆&#xff0c;采用了当今博览馆最前沿的展陈方式&#xff0c;展陈设计与空间布局更具灵动性和多元性&#xff0c;蕴含传统文化氛围…

stable diffusion艰难炼丹之路

文章目录 概要autoDL系统盘爆满autoDL python3.8切换python3.10dreambooth训练大模型完成后报错 概要 主要是通过autoDL服务器部署stable diffusion&#xff0c;通过dreambooth训练大模型。 问题&#xff1a; autoDL系统盘爆满autoDL python3.8切换python3.10dreambooth训练大…

mac M2芯片在使用Android studio 编译问题bad cpu type in executable android

由于mac的intel芯片的一些指令集没有同步在M1 M2芯片上所以需要做兼容 打开控制台&#xff08;通过访达 - 应用程序 - 实用工具 - 终端 &#xff09; 输入 softwareupdate --install-rosetta 之后在输入 A 就可以了。 原产考地址&#xff1a;硬核&#xff01;在 M1 芯…

智能视频监控,究竟“智”在哪里?

当人们一提到智能视频监控时&#xff0c;就会想起高清摄像头、人脸识别等技术。其实不然&#xff0c;真正智能视频监控不仅仅是这些技术算法&#xff0c;更重要的是如何将这些算法融入到应用场景中&#xff0c;更好地去服务大众、起到降本增效的作用。 首先&#xff0c;智能视…

塔望食观察 | 中国海参产业发展现状及挑战

海参&#xff0c;一个古老的物种&#xff0c;堪称海底活化石&#xff0c;据资料显示&#xff0c;海参在地球上存活超过6亿年&#xff0c;比恐龙还早。海参的药用、食疗和营养滋补价值极高&#xff0c;清朝学者赵学敏编的《本草纲目拾遗》有这样的叙述&#xff1a;“海参性温补&…

踩雷react-useRef钩子函数

今天测试提了一个bug&#xff0c;之前做的有个需求&#xff0c;在触发事件发起请求后&#xff0c;成功响应返回的新的数据没有第一时间渲染到网页上。 方法也都成功更新了数据&#xff0c;就是渲染会慢1-2分钟&#xff0c;排错排了老半天&#xff0c;最后找到了原因。 一般情…