教你用Fiddler捕获HTTPS请求

安装Fiddler

这里不特别说明了,网上搜索一大把,根据安装引导一步步安装即可。(这里采用的是fiddler v4.6)

配置Fiddler

1、打开fiddler配置Tools –>Telerik Fiddler Options。

2、打开HTTPS配置项,勾选“CaptureHTTPS CONNECTs”,同时勾选“Decrypt HTTPS traffic”,弹出的对话框选择“是”(即安装fiddler自己的证书)。如果手机与电脑用wifi进行连接,那还需要选择“…fromremote clients only”。如果需要监听不可信证书的HTTPS请求,需要勾选“Ignore servercertificate errors”。

3、打开Conections配置项, 这里可以修改Fiddler代理端口号。勾选“Allow remote computersto connect”。

4、为了可以抓客户端使用httpURLConnection的包。需要通过Rules–>Customize Rules ,默认用“Fiddler ScriptEditor”打开“CustomRules.js”,在函数OnBeforeResponse里面添加以下代码:

  1. if (oSession.oRequest["User-Agent"].indexOf("Android") > -1 && oSession.HTTPMethodIs("CONNECT")) {

  2. oSession.oResponse.headers["Connection"] = "Keep-Alive";

  3. }

添加代码后为:

  1. static function OnBeforeResponse(oSession: Session) {

  2. if (m_Hide304s && oSession.responseCode == 304) {

  3. oSession["ui-hide"] = "true";

  4. }

  5. if (oSession.oRequest["User-Agent"].indexOf("Android") > -1 && oSession.HTTPMethodIs("CONNECT")) {

  6. oSession.oResponse.headers["Connection"] = "Keep-Alive";

  7. }

  8. }

5、通过链接:http://download.csdn.net/detail/huiyuznk/9837991 下载fiddler证书生成器,下载后运行“fiddlercertmaker.exe”进行安装。
6、在“Telerik Fiddler Options”中“HTTPS”中,点击“CertEnroll engine”,在弹出的“Certificate Creation Preferences”中,选择Engine“MakeCert”,然后点击“OK”,生成对应证书。

7、点击“Actions”,在弹出的列表中选择“Export Root Certificate to Desktop”,把证书导出到桌面。

导出的证书

8、最后,不要忘记重启Fiddler。

配置手机
1、保证手机与PC在同一网段下。
2、配置手机连接的wifi,可能每个手机wifi配置的方式都不太一样,多研究下,选择已经连接的网络,打开修改网络窗口。显示高级属性,配置网络代理->手动 代理服务器主机名:填写pc机的IP地址,例如:192.168.0.33,代理服务器端口号:fiddler的代理端口号,这里如8899。
3、安装证书
Android机安装证书

1)Android连接到电脑上,从电脑上打开手机的内存卡,直接把证书复制到SD卡中。
2)点击设置—>安全—>设备管理与凭证—>从存储盘安装 (每款手机有一定差异,多研究下就好),在存储空间中找到证书,点击安装即可。

iOS机安装证书
将证书发送到邮箱中,在手机浏览器上登录邮箱,查看邮件并点击附件进行证书的安装即可。(方式一,目前新版本不可用)

直接访问安装fiddler的 电脑局域网IP 和 fiddler设置代理端口 (如 http://192.168.0.33:8899),这样就能对证书进行下载安装。(推荐使用该种方式)

最后,我们就可以对HTTPS请求接口进行捕获了。如图:

安全思考?
通过fiddler可以对https抓包,是不是就不安全的了呢,毕竟所有请求对我们来说都是透明的。其实刚才的过程很重要的一点就是我们下载并且安装了fiddler的根证书,对于pc端来说就是配置fiddler https选项时弹出的对话框,对于手机来说就是我们去“pcip地址:fiddler代理端口”这个地址下载证书的过程。
对https的安全来说,https安全的前提就是可信的根证书。
而,之前的操作无疑是在我们系统里面安装了不可信的根证书。使得fiddler对通信造成了中间人攻击!简单的说就是我们与服务器进行通信,会先获取服务器的证书,进行校验校验过程是用本地的可信根证书进行校验,而装入fiddler的根证书后,fiddler可以伪造证书,获取我们与服务器通信的秘钥,进而破解我们的通信。所以对我们系统来说安装证书是一个非常危险的操作!

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

  1. 文档获取方式:

  2. 加入我的软件测试交流群:680748947免费获取~(同行大佬一起学术交流,每晚都有大佬直播分享技术知识点)

这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

以上均可以分享,只需要你搜索vx公众号:程序员雨果,即可免费领取

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode-2580-统计将重叠区间合并成组的方案数-c++

题目详见https://leetcode.cn/problems/count-ways-to-group-overlapping-ranges/ 题目要求将最后的ranges分为两个组。也就是说当你的ranges已经满足题目要求的时候,这两个组怎么分是随意的,这里也就引出了 2 k 2^k 2k 的由来,其实就是每组…

Leetcode-2810-故障键盘-c++

题目详见https://leetcode.cn/problems/faulty-keyboard/ 题解 这道题的关键是如何合理地使用STL,毕竟是一道简单题。 之前常用到的Vector容器是单向开口的连续内存空间 deque则是一种双向开口的连续线性空间,又称双端动态数组。所谓的双向开口&#x…

Windows Server 2022 使用ApacheDS用户远程桌面登录服务器

Windows Server 2022 使用ApacheDS用户远程桌面登录服务器 1、接上篇 Windows Server 2022 使用ApacheDS用户认证 使用Administrator用户远程登录192.168.1.100windows server,打开pGina软件 2、输入刚刚在ApacheDS中的新添加的用户测试一下,会自动添加…

200个有趣的HTML前端游戏项目合集(持续更新中)

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】🤟 一站式轻松构建小程序、Web网站、移动应用:👉注册地址🤟 基于Web端打造的:👉轻量化工具创作平台💅 想寻找共同学习交…

[实时流基础 flink] 窗口

在批处理统计中,我们可以等待一批数据都到齐后,统一处理。但是在实时处理统计中,我们是来一条就得处理一条,那么我们怎么统计最近一段时间内的数据呢?引入“窗口”。 文章目录 6.1 窗口的概念6.2 窗口的分类**1&#x…

让接口自动化测试更简单

HTTP 接口测试很简单,不管工具、框架、还是平台,只要很的好的几个点就是好工具。 测试数据问题:比如删除接口,重复执行还能保持结果一致,必定要做数据初始化。接口依赖问题:B 接口依赖 A 的返回值&#xf…

新model开发记录

模型使用 -- 用blender导出为 fbx ,修改渲染方式(点击模型->Materials->Extract Materials(将材质从fbx中 单独提取出来了)->Materials 选择 Shader -> SimpleURPToonLitExample 点开脸的材质,勾选第一条) 解决角色…

【C++的奇迹之旅(二)】C++关键字命名空间使用的三种方式C++输入输出命名空间std的使用惯例

文章目录 📝前言🌠 C关键字(C98)🌉 命名空间🌠命名空间定义🌉命名空间使用 🌠命名空间的使用有三种方式:🌉加命名空间名称及作用域限定符🌠使用using将命名空间中某个成员…

MATLAB绘制堆叠填充图--巧用句柄

MATLAB绘制堆叠填充图–巧用句柄 目录 MATLAB绘制堆叠填充图--巧用句柄1. 主要原理讲解1.1 主要函数1.2 句柄原理 2. 绘图示例2.1 准备数据2.2 绘制堆叠填充图-使用句柄控制图形属性2.3 设置填充颜色和样式2.4 添加标题和标签2.5 绘图效果 3. 结语 堆叠填充图是一种常见的数据可…

StringBuffer与StringBuilder

1.区别 (1). String : 不可变字符序列. (2). StringBuffer : 可变字符序列.线程安全,但效率低. (3). StringBuilder : 可变字符序列.线程不安全,但效率高. 既然StringBuffer与StringBuilder都是可变字符序列,但二者咋区分开呢&#xff1f…

Dimitra:基于区块链、AI 等前沿技术重塑传统农业

根据 2023 年联合国粮食及农业组织(FAO)、国际农业发展基金(IFAD)等组织联合发布的《世界粮食安全和营养状况》报告显示,目前全球约有 7.35 亿饥饿人口,远高于 2019 年的 6.13 亿,这意味着农业仍…

碳素光线疗法与宠物健康

碳素光线与宠物健康 生息在地球上的所有动物、在自然太阳光奇妙的作用下、生长发育。太阳光的能量使它们不断进化、繁衍种族。现在、生物能够生存、全仰仗于太阳的光线。太阳光线中、包含有动物健康所需要的极为重要的波长。因此、和户外饲养的动物相比、在室内喂养的观赏动物、…

【机器学习300问】59、计算图是如何帮助人们理解反向传播的?

在学习神经网络的时候,势必会学到误差反向传播,它对于神经网络的意义极其重大,它是训练多层前馈神经网络的核心算法,也是机器学习和深度学习领域中最为重要的算法之一。要正确理解误差反向传播,不妨借助一个工具——计…

初始C语言最后一章《编译、链接与预处理详解》

前言 感谢老铁们的陪伴和支持,初始C语言专栏在本章内容也是要结束了,这创作一路下来也是很不容易,如果大家对 Java 后端开发感兴趣,欢迎各位老铁来我的Java专栏!当然了,我也会更新几章C语言实现简单的数据结…

从C到C++:深入理解基础语法差别

C基础语法讲解 前言1.输入输出2.命名空间2.1命名空间的理解:2.2命名空间的使用方式 3.缺省参数3.1概念:3.2分类:半缺省函数注意事项: 3.3使用案例:顺序表的初始化 4.函数重载4.1参数重载类型类型: 5.引用5.…

C++刷题篇——05静态扫描

一、题目 二、解题思路 注意:注意理解题目,缓存的前提是先扫描一次 1、使用两个map,两个map的key相同,map1:key为文件标识,value为文件出现的次数;map2:key为文件标识,va…

性能测试必备docker环境准备

在当今快速发展的软件开发领域,docker作为一种开源的容器化技术,已经成为提高应用部署效率、实现快速、一致的环境配置的重要工具。而性能测试,则是确保软件应用在各种负载和压力条件下表现良好的关键步骤。二者的结合,为软件开发…

基于springboot酒店管理平台

摘 要 随着科学技术的飞速发展,各行各业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于酒店管理平台系统当然也不能排除在外,随着网络技术的不断成熟,带动了酒店管理平台系统,它彻底改变了过…

手写Spring框架(上)浅出

手写Spring框架 准备工作Spring启动和扫描逻辑实现依赖注入的实现Aware回调模拟实现和初始化机制模拟实现BeanPostProcessor (Bean的后置处理器) 模拟实现Spring AOP 模拟实现 准备工作 准备一个空的工程创建spring的容器类,它是Spring IOC理念的实现,负…

目标检测:数据集划分 XML数据集转YOLO标签

文章目录 1、前言:2、生成对应的类名3、xml转为yolo的label形式4、优化代码5、划分数据集6、画目录树7、目标检测系列文章 1、前言: 本文演示如何划分数据集,以及将VOC标注的xml数据转为YOLO标注的txt格式,且生成classes的txt文件…