[转]fiddler 抓包 HTTPS 请求

教程开始

安装 fiddler

首先准备一台可以上网的 windos 电脑,准备一部智能手机。 
fiddler 抓包工具:下载地址( 自行百度一搜一大片)。安装,打开如果遇到. net framework 错误,下载一个高本版的. net 即可。好了教程已经完成了一大半。 
打开 fiddler 随便打开下浏览器。发现已经可以抓包,但想要抓手机 https 还需要做一些设置。 
[转]fiddler 抓包 HTTPS 请求

配置 fiddler

  1. 打开 fiddler 配置 Tools –> Fiddler Options. 
    [转]fiddler 抓包 HTTPS 请求
  2. 打开 HTTPS 配置项,勾选 “CaptureHTTPS CONNECTs”,同时勾选 “Decrypt HTTPS traffic”,弹出的对话框选择是(这里是按照 fiddler 自己的证书)如果跟我一样手机跟电脑是用 wifi 进行链接的话还需要选择 “…fromremote clients only”。如果需要监听不可信的证书的 HTTPS 请求的话,需要勾选 “Ignore servercertificate errors”。 
    [转]fiddler 抓包 HTTPS 请求
  3. 打开 Conections 配置项, 这里可以修改 Fiddler 代理端口号。勾选 “Allow remote computersto connect。提示需要重启 fiddler。 
    [转]fiddler 抓包 HTTPS 请求
  4. 哈哈,高端的来了,需要写点代码。这里是为了可以抓客户端使用 httpURLConnection 的包。 
    Ruler –>CustomizeRules 
    在函数 OnBeforeResponse 里面添加下面代码:
if (oSession.oRequest["User-Agent"].indexOf("Android") > -1 && oSession.HTTPMethodIs("CONNECT")) {
oSession.oResponse.headers["Connection"] = "Keep-Alive";
}
  • 1
  • 2
  • 3

添加后代码为:

static function OnBeforeResponse(oSession: Session) {
if (m_Hide304s && oSession.responseCode == 304) {
oSession["ui-hide"] = "true";
}
if (oSession.oRequest["User-Agent"].indexOf("Android") > -1 && oSession.HTTPMethodIs("CONNECT")) {
oSession.oResponse.headers["Connection"] = "Keep-Alive";
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

不要忘记重启 fiddler!!!

配置手机

保证手机跟 pc 是在同一个网段下。 
配置手机连接的 wifi,可能每个手机打开 wifi 配置的方式都不太一样,仔细研究下,选择已经连接的网络,打开修改网络窗口。显示高级属性,配置网络代理–> 手动 代理服务器主机名:填写 pc 机的 IP 地址即可例如:192.168.0.4,代理服务器端口号:fiddler 的代理端口号,如果没有修改就是 8888。 
关键步骤哈: 
下载安装 fiddler 的证书 
[转]fiddler 抓包 HTTPS 请求 
在手机浏览器打开 代理服务器:端口号 例如上面填写的就是 192.168.0.4:8888,点击页面中的 “FiddlerRootcertificate” 链接,在弹出的对话框中随便设置一个名称确定即可。

抓包截图

测试机上没装多少软件,打开百度钱包来试试 
[转]fiddler 抓包 HTTPS 请求

好了。大功告成!

让我们想想

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

上一篇:nodeJS基础08:读取图片


下一篇:Servlet从本地文件中读取图片,并显示在页面中