【工具】比浏览器 F12 更好用的免费调试抓包工具 Fiddler 介绍 | 您所在的位置:网站首页 › 免费抓包工具有哪些好用 › 【工具】比浏览器 F12 更好用的免费调试抓包工具 Fiddler 介绍 |
简介
Fiddler 是位于客户端和服务器端的 HTTP 代理 目前最常用的 HTTP 抓包工具之一 功能非常强大,是 web 调试的利器 监控浏览器所有的 HTTP/HTTPS 流量 查看、分析请求内容细节 伪造客户端请求和服务器响应 解密 HTTPS 的 web 会话 全局、局部断点功能 第三方插件 使用场景 接口的测试与调试 线上环境调试 web 性能分析 下载直接去官网下载 Fiddler Classic 即可: 学习一件新事物,最好是知其然亦知其所以然,这样遇到问题心里有底,才不容易慌,下面就介绍下 Fiddler 抓包的原理。 Fiddler 是位于客户端和服务器端之间的 HTTP 代理。一旦启动 Fiddler,其会自动将代理服务器设置成本机,默认端口为 8888,并设置成系统代理(Act as system proxy on startup)。可以在 Fiddler 通过 'Tools -> Options -> Connections' 查看, 图示如下:
下面开始对整个 Fiddler 的界面进行一个庖丁解牛 工具栏
Replay:重放选中的那条请求,同时按下 shift + R 键,可以输入重复发送请求的次数(这些请求是串行发送的)。可以用来做重放攻击的测试。 删除会话(sessions) 继续打了断点的请求:打断点后请求会被拦截在 Fiddler,点击这个 Go 继续发送。打断点的方式是点击界面底部的空格,具体位置如下图所示: 这个类似瞄准器的工具时用于选择抓取请求的应用:按住不放将鼠标拖放到目标应用即可 可用于查找某条请求,比如你知道请求参数里的某个字段,可以直接输入进行查找 编码解码工具,可以进行多种编码的转换,是个人觉得挺好用的一个工具,能够编码的格式包括但不限于 base64、md5 和 URLEncode 等 可以查看一些诸如本机 ip(包括 IPv4,IPv6) 等信息,就用不着去 cmd 里 输入ipconfig 查看了,如下图: 位于软件界面的左半部的就是会话列表了,抓取到的每条 http 请求都列在这,每一条被称为一个 session,如下图所示: 请求的状态码(result) 协议(protocol) 主机名(host) URL 请求大小(body,以字节为单位) 缓存信息(caching) 响应类型(content-type) 发出请求的 Windows 进程及进程 ID(process) 自定义列除了以上这些,我们还可以添加自定义列,比如想添加一列请求方法信息: 点击菜单栏 -> Rules -> Customize Rules 调出 Fiddler ScriptEditor 窗口 按下 ctrl + f 输入 static function Main() 进行查找 然后在找到的函数 Main 里添加: FiddlerObject.UI.lvSessions.AddBoundColumn("Method",60,getHTTPMethod ); static function getHTTPMethod(oS: Session){ if (null != oS.oRequest) return oS.oRequest.headers.HTTPMethod; else return String.Empty; } 复制代码图示如下:
点击每一列的列表头,可以反向排序 按住列表头不放进行拖动,可以改变列表位置 QuickExec 与状态栏位于软件界面底部的那条黑色的是 QuickExec,可用于快速执行输入的一些命令,具体命令可输入 help 跳转到官方的帮助页面查看。图示如下:
Capturing:代表目前 Fiddler 的代理功能是开启的,也就是是否进行请求响应的拦截,如果想关闭代理,只需要点击一下 Capturing 图标即可 All Processes:选择抓取的进程,可以只选浏览器进程或是非浏览器进程等 断点:按一次是请求前断点,也就是请求从浏览器发出到 Fiddler 这停住;再按一次是响应后的断点,也就是响应从服务器发出,到Fiddler 这停住;再按一次就是不打断点 当前选中的会话 / 总会话数 附加信息 辅助标签 + 工具位于软件界面右边的这一大块面板,即为辅助标签 + 工具,如下图所示,它拥有 10 个小标签,我们先从 Statistics 讲起,btw,这单词的发音是 [stəˈtɪstɪks],第 3 个字母 a 发 'ə' 的音,而不是 'æ'~ 这个 tab 里都是些 http 请求的性能数据分析,如 DNS Lookup(DNS 解析时间)、 TCP/IP Connect(TCP/IP 连接时间)等。 Inspectors(检查器)
我在做一个后台项目的时候,因为前台还没弄好,数据库都是没有数据的,在获取列表时,请求得到的都是如下图所示的空数组:
勾选上 Enable rules(激活自动响应器) 和 Unmatched requests passthrough(放行所有不匹配的请求)
说完了对响应的篡改,现在介绍的 composer 就是用于对请求的篡改。这个单词的翻译是作曲家,按照我们的想法去修改一个请求,宛如作曲家谱一首乐曲一般。
在默认情况下,Filters 会抓取一切能够抓取到的请求,统统列在左侧的会话列表里,如果我们是有目的对某些接口进行测试,就会觉得请求列表很杂乱,这时可以点开 Filters 标签,勾选 Use Filters,启动过滤工具,如下图:
默认情况下,Fiddler 没办法显示 HTTPS 的请求,需要进行证书的安装: 点击 'Tools -> Options...' ,勾选上 'Decrypt HTTPS traffic' (解密HTTPS流量) 点击 Actions 按钮,点击 'Reset All Certicicates' (重置所有证书),之后遇到弹出的窗口,就一直点击 '确定' 或 'yes' 就行了。 查看证书是否安装成功:点击 'Open Windows Certificate Manager' 打开 Windows 证书管理器窗口
通过 'Rules -> Automatic Breakpoints' 可以给请求打断点,也就是中断请求,断点分为两种: Before Requests(请求前断点):请求发送给服务器之前进行中断 After Responses(响应后断点):响应返回给客户端之前进行中断
如果只想对某一条请求打断点,则可以在 QuickExec 输入相应的命令执行。 请求前断点 在 QuickExec 输入 bpu query_adverts 。注意:query_adverts 为请求的 url 的一部分,这样就只有 url 中包含 query_adverts 的请求会被打上断点。 按下 Enter 键,可以看到红框中显示 query_adverts 已经被 breakpoint 了,而且是 RequestURI 选中 url 中带 query_adverts 的这条请求,按 R 再次发送,在发给服务器前就会被中断(原谅我又拿掘金的请求做例子~) 取消断点:在 QuickExec 输入 bpu 按下 Enter 即可 响应后断点 与请求前断点步骤基本一致,区别在于输入的命令是 bpafter get_today_status 按下 Enter 后在 'Composer' 标签下点击 'Execute' 执行,再次发送该请求则服务器的响应在发送给浏览器之前被截断,注意下红色的图标,跟之前的请求前断点的区别在于一个是向上的箭头,一个是向下的箭头。
Fiddler 还可以用于弱网测试,'Rules -> Performance -> 勾选 Simulate Modem Speeds' 即可
网速还可以修改,点击 'FiddlerScript' 标签,在下图绿框中搜索 simulateM,按几下回车找到 if (m_SimulateModem) 这段代码,可以修改上下传输的速度: 最后一部分主要内容是关于手机抓包的,我用的是小米手机 9,MIUI 12.5.1 稳定版,安卓版本为 11。 首先保证安装了 Fiddler 的电脑和手机连的是同一个 wifi 在 Fiddler 中,点击 'Tools -> Options...' ,在弹出的 Options 窗口选择 Connections 标签,勾选 'Allow remote computers to connect' 手机打开 '设置 -> WLAN -> 连接的那个 WLAN 的设置' 进入如下图所示的页面 '代理' 选择 '手动','主机名' 填写电脑的主机名,端口则是 Fiddler 默认监听的 8888,然后点击左上角的 '打钩图标' 进行保存 下载证书:打开手机浏览器,输入 'http://192.168.1.1:8888' (注意:192.168.1.1 要替换成你电脑的 ip 地址),会出现如下页面
安装证书:打开 '设置 -> 密码与安全 -> 系统安全 -> 加密与凭据 -> 安装证书(从存储设备安装证书)-> 证书 ' 找到刚刚下载的证书进行安装 安装完成可以在 '加密与凭据 -> 信任的凭据' 下查看 现在 Fiddler 就可以抓到手机里 app 发送的请求了 最后注意:测试完毕需要关闭手机的 WLAN 代理,否则手机就上不了网了~ One More Thing 几个常用快捷键双击某一条请求:打开该请求的 Inspectors 面板 ctrl + X:清除请求列表 R:选中某一条请求,按 R 键可重新发送该请求 shift+delete:删除除了选中那一条之外的请求 转自:https://juejin.cn/post/6983282278277316615 |
CopyRight 2018-2019 实验室设备网 版权所有 |