Fiddlercore拦截并修改HTTPS链接的网页,实现JS注入

原始出处:https://www.cnblogs.com/Charltsing/p/FiddlerCoreHTTPS.html

Fiddlercore可以拦截和修改http的网页内容,代码在百度很多。

如果想用Fiddlercore拦截和修改Https的网页,你会遇到私密连接的问题,导致Chrome无法打开网页。如何解决这个问题呢?

Fiddlercore拦截Https的原理是自己创建一个Https的证书,重新对网站的链接数据进行加密传输,所以,我们要通过代码创建一个https证书给Fiddlercore。

创建Https证书有两种方式,一种是通过MakeCert.exe ,另一种是通过 CertMaker.dll及BCMakeCert.dll来创建。

在官网说明中,明确的说了两点:

1、MakeCert.exe使用Windows API生成存储在用户的\Personal\Certificates存储中的证书。这些证书与iOS设备不兼容,后者需要证书中未由MakeCert.exe设置的特定字段。
2、CertMaker.dll使用BouncyCastle C#库(BCMakeCert.dll)从头开始生成新证书。这些证书仅存储在内存中,并与iOS设备兼容。

注意红色字!!

我们 在Fiddlercore编程的时候,通常采用dll方式创建证书,创建后的证书放在内存中。所以,仅当程序第一次启动的时候,我们才需要创建证书,以后再启动程序,就不需要创建证书了,这个过程持续到电脑重启为止。

创建的证书有两个关键信息:fiddler.certmaker.bc.cert 和 fiddler.certmaker.bc.key。这两个信息创建之后,要保存到某个地方以备下次启动时调用获取之前创建的数字证书。通常,我们可以把这两个信息(就是字符串)放到App.Config文件里面。

安装证书使用 CertMaker.createRootCert(),卸载证书使用removeFiddlerGeneratedCerts()

 

下面是一个注入JS的工具,使用Fiddlercore完成,支持HTTPS网页。

如果有什么技术问题交流,联系QQ564955427。

 

*****************

 

posted @ 2019-06-04 11:36  Charltsing  阅读(3502)  评论(0编辑  收藏  举报