FiddlerCoreAPI开发(二)截获HTTPS流量
上一篇文章简单简单分析了fiddlercore自带样例的代码,本篇文章进入主题,介绍如何使用fiddlercore截获HTTPS流量。
当时学习完样例代码后,我觉得结合注释来抓HTTPS的包应该也很简单,结果按照注释的提示修改了下代码后,还是抓不到,反复尝试了很多方法都没有解决,在google上搜了搜有人说可能是证书的问题,但也没有给出具体的解决办法,所以只能自己慢慢摸索,终于找到了一种方法,在这里和大家分享一下。
既然有可能是证书出了问题,那么我们就自己生成个证书,翻了翻帮助文档发现还真有这样的函数,叫做createRootCert(),而且函数说明中写道: “Create a self-signed certificate to use for HTTPS interception” ,看到这个说明我觉得我可能找对地方了,直接生成证书:
Fiddler.CertMaker.createRootCert();
利用GetRootCertificate()获得上述证书:
X509Certificate2 oRootCert = Fiddler.CertMaker.GetRootCertificate();//Returns the Root certificate that Fiddler uses to generate per-site certificates used for HTTPS interception.
然后把这个证书安装到受信任的根证书颁发机构:
System.Security.Cryptography.X509Certificates.X509Store certStore = new System.Security.Cryptography.X509Certificates.X509Store(StoreName.Root, StoreLocation.LocalMachine);
certStore.Open(OpenFlags.ReadWrite);
try
{
certStore.Add(oRootCert);
}
finally
{
certStore.Close();
}
这个证书还要赋值给变量oDefaultClientCertificate(The default certificate used for client authentication)
Fiddler.FiddlerApplication.oDefaultClientCertificate = oRootCert;
至此,问题算是解决了,后面就是按部就班的做就可以了。
bBufferResponse这个属性在BeforeRequest里设为true,可以修改响应内容:
Fiddler.FiddlerApplication.BeforeRequest += delegate(Fiddler.Session oS)
{
oS.bBufferResponse = true;
};
BeforeResponse里面把会话存起来:
Fiddler.FiddlerApplication.BeforeResponse += delegate(Fiddler.Session oSession)
{
if (oSession.isHTTPS)
{
Monitor.Enter(oAllSessions);
oAllSessions.Add(oSession);
Monitor.Exit(oAllSessions);
}
};
忽略服务器证书错误:
Fiddler.CONFIG.IgnoreServerCertErrors = true;
再往后正常的Startup()和CreateProxyEndpoint()就可以了,响应的内容都保存在oAllSessions里面了,想怎么处理就怎么处理吧,在此不多赘述了,懂的人都懂。
最后附一张上某宝截获的内容:

注意
1.如果是火狐浏览器的话,还需要把证书导入到浏览器中。
2.别忘了Shutdown(),不然浏览器就上不了网了,上不了的话去浏览器设置里面把代理去掉就可以了。
FiddlerCoreAPI开发(二)截获HTTPS流量的更多相关文章
- iOS截取http/https流量
0x01.Why? 做移动测试的同学经常会在app和server中间架设一个代理(例如charles或者fiddler等),由经代理,app和server之间的交互及交互内容变得可视化,使得我们不再摸 ...
- 在服务器上用Fiddler抓取HTTPS流量
转自:http://yoursunny.com/t/2011/FiddlerHTTPS/在服务器上用Fiddler抓取HTTPS流量 阳光男孩 发表于2011-03-19 开发互联网应用的过程中,常常 ...
- Burp Suite 抓取http、https流量配置+CA证书安装
HTTPS协议是为了数据传输安全的需要,在HTTP原有的基础上,加入了安全套接字层SSL协议,通过CA证书来验证服务器的身份,并对通信消息进行加密.基于HTTPS协议这些特性,我们在使用Burp Pr ...
- 【百度】大型网站的HTTPS实践(二)——HTTPS加密算法介绍
大型网站的HTTPS实践(二)——HTTPS加密算法介绍 原创 网络通信/物联网 作者:AIOps智能运维 时间:2018-11-09 15:09:43 358 0 前言 在上一篇文章中,我们简要 ...
- 以太坊开发(二)使用Ganache CLI在私有链上搭建智能合约
以太坊开发(二)使用Ganache CLI在私有链上搭建智能合约 在上一篇文章中,我们使用Truffle自带的客户端Truffle Develop,在私有链上搭建并运行了官方提供的WebPack智能合 ...
- 三种解密 HTTPS 流量的方法介绍
转载自:https://imququ.com/post/how-to-decrypt-https.html作者: Jerry Qu Web 安全是一项系统工程,任何细微疏忽都可能导致整个安全壁垒土崩瓦 ...
- 从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板
标题:从零开始实现ASP.NET Core MVC的插件式开发(二) - 如何创建项目模板 作者:Lamond Lu 地址:https://www.cnblogs.com/lwqlun/p/11155 ...
- STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解)
目录 STC8H开发(一): 在Keil5中配置和使用FwLib_STC8封装库(图文详解) STC8H开发(二): 在Linux VSCode中配置和使用FwLib_STC8封装库(图文详解) 前面 ...
- iOS开发-二维码扫描和应用跳转
iOS开发-二维码扫描和应用跳转 序言 前面我们已经调到过怎么制作二维码,在我们能够生成二维码之后,如何对二维码进行扫描呢? 在iOS7之前,大部分应用中使用的二维码扫描是第三方的扫描框架,例如Z ...
随机推荐
- 一起写框架-Ioc内核容器的实现-基础功能-ComponentScan支持多包扫描(六)
实现功能 1.我们看到@ComponentScan注解一个开始定义就是需要支持,扫描多个包,将多个包的类名获取到.现在就实现这个功能. 实现思路 根据传入的字符串数组,获得多个包下的类全限制名. 实现 ...
- java非阻塞IO(NIO)流程
单线程 多线程(Netty/Mina)
- 小程序 wx.getRecorderManager 录音 to 语音识别
微信扫小程序码看调用效果(自然语言理解小助手) 欢迎转载,请保留原文链接:http://www.happycxz.com/m/?p=125 这次主要是把我的api更新了一下,支持微信小程序新的录音接口 ...
- 4年java开发,该何去何从!
以前都是一直看,今天楼主第一次发博,还望各位不吝赐教. 今天也没别的要说的,就是吐槽一下楼主这几天的面试遭遇,感觉都有点怀疑人生了. 先说说楼主的情况吧,13年毕业本科计算机专业,到现在一直做java ...
- Maven中settings.xml的配置项说明精讲
1.Maven的配置文件(Maven的安装目录/conf/settings.xml ) 和 Maven仓库下(默认的Maven仓库的是用户家目录下的.m2文件,可以另行制定)的settings.xml ...
- 从运维的角度分析使用阿里云数据库RDS的必要性--你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库
开宗明义,你不应该在阿里云上使用自建的MySQL or SQL Server数据库,对了,还有Oracle or PostgreSQL数据库. 云数据库 RDS(Relational Database ...
- Python之matplotlib学习(一)
小试牛刀 在上一节已经安装好matplotlib模块,下面使用几个例子熟悉一下. 对应的一些文档说明: http://matplotlib.org/1.3.1/api/pyplot_summary.h ...
- let和const命令
let命令 1.let用来声明变量,类似于var,但只在代码块内有效. { let a = 1; var b = 2; } console.log(a); //a is not defined con ...
- 关于回调(callback)
如果要理解回调,需要在分同步通信.异步通信的基础上了解 举个通俗的例子: 你打电话问书店老板有没有<JS>这本书,如果是同步通信机制,书店老板会说,你稍等,"我查一下" ...
- tensorflow 学习笔记 多层感知机
# -*- coding: utf-8 -*- """ Created on Thu Mar 9 19:20:51 2017 @author: Jarvis " ...