HTTPS相对于HTTP增加了安全性,但是仍然不能有效的防止中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)

这就使得Fiddle工具能够有效的监听HTTPS流量

一个HTTPS网站的正常访问流程是这样的

中间人攻击在于对浏览器加入自己的CA,伪造数字证书,对流量进行转发

加入自己的CA是为了让伪造的数字证书变得可信,欺骗过浏览器

伪造数字证书是为了监听HTTPS 交互的具体内容

下面俩个图给出了中间人攻击的HTTPS的请求和响应两个阶段

中间人攻击的最重要一环在于把自己的CA放入浏览器中,方法有很多,比如:病毒、木马、社会工程学......

好了,原理简单的讲完了,接下来我们来设置Fiddle

首先下载Fiddle

下载地址:http://www.telerik.com/download/fiddler

至于下载哪个版本

win7以及之前的XP建议下载.net2版本,win8/8.1以及之后的版本建议下载.net4版本

原因在于:win7内置.net2,xp可以安装.net2,win8/8.1内置.net4版本

笔者这里安装.net4版本的

下载之后是fiddler4setup.exe,双击安装不用说

接下来看配置

打开Fiddle

Tools[工具]-->Fiddler Options...[Fiddle 选项...]-->HTTPS-->勾选Decrypt HTTPS traffic[解密HTTPS流量]

Tools[工具]-->Fiddler Options...[Fiddle 选项...]-->Connections-->勾选Allow remote computers to connection[允许远程计算机连接]

设置好后关闭重启Fiddle

接下来我们为浏览器导入证书

浏览器打开http://127.0.0.1:8888/

在Fiddle Echo Service页面中点击FiddlerRoot certificate,然后根据浏览器提示导入证书

监听安卓客户端时,需要通过电脑设置wifi热点,任何安卓手机连接上改热点,证书下载地址的IP改成网关的IP

ip一般都可以通过ipconfig命令查出来

笔者查询的结果如下

C:\Windows\system32>ipconfig

Windows IP 配置

无线局域网适配器 WLAN :

   连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::481a:1efd:d5d4:a87b%
IPv4 地址 . . . . . . . . . . . . : 192.168.253.1
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 无线局域网适配器 WLAN: 媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . : 以太网适配器 以太网: 连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80:::5b85:a10c:3cb7%
IPv4 地址 . . . . . . . . . . . . : 172.18.62.201
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 172.18.62.1 以太网适配器 VMware Network Adapter VMnet8: 连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80:::851f::17f1%
IPv4 地址 . . . . . . . . . . . . : 192.168.116.1
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 隧道适配器 isatap.{784B4179-BA1C--9B8D-F8E29487D30B}: 媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . : 隧道适配器 isatap.{0FF64FC6--4E80-8D12-902E97461A8E}: 媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . : 隧道适配器 isatap.{2B3C716B-2A34-478D-A21F-FE38734BC6BF}: 媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . : C:\Windows\system32>

对应的IP地址为192.168.253.1,所以安卓客户端访问的地址为

安卓访问的界面

同样是点击FiddlerRoot certificate,然后按提示导入证书,证书名字自己随便起一个

别以为这样就完了接下来还要设置HTTP/HTTPS代理,虽然Fiddle说这个代理是HTTP代理,实际上并不准确,这个代理对不能代理的协议也实现了转发(个人觉得是直连),比如QQ和微信客户端就没有使用HTTP代理

代理设置大同小异

对于本机,127.0.0.1:8888 协议类型HTTP/HTTPS

对于安卓客户端,192.168.253:8888 协议类型HTTP/HTTPS

设置完成后抓几个HTTPS的报文

使用Fiddle监听HTTPS网页的更多相关文章

  1. Fiddler监听Https请求响应

    Fiddler问题 - creation of the root certificate was not successful 解决办法: http://localhost:8888/    安装证书 ...

  2. 简述Java中Http/Https请求监听方法

    一.工欲善其事必先利其器 做Web开发的人总免不了与Http/Https请求打交道,很多时候我们都希望能够直观的的看到我们发送的请求参数和服务器返回的响应信息,这个时候就需要借助于某些工具啦.本文将采 ...

  3. DownEditTextView【自定义Edittext对Android 软键盘向下的监听】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 记录自定义EditText控件实现监听软键盘隐藏事件的功能.基本上和参考资料相同. 效果图    代码分析 自定义EditText子 ...

  4. 26 Flutter仿京东商城项目 购物车之 event_bus事件广播 事件监听

    event_bus 介绍 在前面的课程我们给大家讲过状态管理 Provider 的使用. 通俗的讲状态管理就是:当我们想在多个页面(组件/Widget)之间共享状态(数据),或 者一个页面(组件/Wi ...

  5. 从网页监听Android设备的返回键

    最近搞Android项目的时候,遇到一个比较蛋疼的需求,需要从Client App调用系统浏览器打开一个页面,进行杂七杂八的一些交互之后,返回到App.如何打开浏览器和如何返回App这里就不说了,有兴 ...

  6. 微信浏览器返回刷新,监听微信浏览器返回事件,网页防复制,移动端禁止图片长按和vivo手机点击img标签放大图片

    以下代码都经过iphone7,华为MT7 ,谷歌浏览器,微信开发者工具,PC端微信验证.如有bug,还请在评论区留言. demo链接:https://pan.baidu.com/s/1c35mbjM ...

  7. WebView使用_WebView监听网页下载_DownloadManager使用

    最近在做一个较简单的项目:通过一个webview来显示一个网页的App 这个网页有下载的功能,关于这一功能需要用到两个知识点: 1.webview监听网页的下载链接.(webview默认情况下是没有开 ...

  8. nginx 监听一个端口同时支持https和http

    nginx 如何想同时支持https和http,必须监听两个不同的端口,比如http:listen 80; https:listen 443;   server { listen 1234 ssl;s ...

  9. Nginx配置IPv6端口监听及务器设置IPV6及Https支持并通过AppStore审核

    一.监听端口 从Nginx 1.3的某个版本起,默认ipv6only是打开的,所以,我们只需要在监听中加入ipv6监听即可,不过推荐都手动加上比较好,代码如下: listen [::]: ipv6on ...

随机推荐

  1. 51nod_1154 回文串的划分

    说实话..最开始看这题感觉一定好难...好高大上...我的马拉车还不熟....这种..但是本着做不出来也要至少看看的心态,吧个题看完了..然后简单的想了想,好像是个挺直观的动态规划,因为看到数据几乎就 ...

  2. 菜鸟学Linux - bash的配置文件

    bash是各大Linux发行版都支持的shell.当我们登陆bash的时候,虽然我们什么都没做,但是我们已经可以在bash中调用各种各样的环境变量了.这是因为,系统中已经定义了一系列的配置文件,以及加 ...

  3. 菜鸟学Linux - 文件/文件夹的隐藏属性

    文件/文件夹居然还有隐藏属性?没错,隐藏属性对于文件/文件夹的安全很重要.好比如说,我们需要使用”鉴定符“来揭开装备的隐藏属性:在Linux中chattr/lsattr就是“鉴定符”. chattr基 ...

  4. P2920 [USACO08NOV]时间管理Time Management

    P2920 [USACO08NOV]时间管理Time Management 题目描述 Ever the maturing businessman, Farmer John realizes that ...

  5. 用js立即执行函数开发基于bootstrap-multiselect的联动参数菜单

    代码调用方式如下: data=[{F0:总分类cd,F1:总分类name,F2:大分类cd,F3:大分类name,F4:中分类cd,F5:中分类name,F6:小分类cd,F7:小分类name},.. ...

  6. Flask 中蓝图的两种表现形式

    最近在学Flask,特有的@X.route 很适合RESTfuld API, 一般小型应用,在一个py文件中就可以完成,但是维护起来比较麻烦. 想体验Django那样的MVT模式, 看到 Flask提 ...

  7. Python-S9-Day123——爬虫两示例

    01 今日内容回顾 02 内容回顾和补充:面向对象约束 03 爬虫之抽屉新热榜 04 爬虫之抽屉自动登录(一) 05 爬虫之抽屉自动登录(二) 06 爬虫之登录github(一) 07 爬虫之登录gi ...

  8. svm常用核函数

    SVM核函数的选择对于其性能的表现有至关重要的作用,尤其是针对那些线性不可分的数据,因此核函数的选择在SVM算法中就显得至关重要.对于核技巧我们知道,其目的是希望通过将输入空间内线性不可分的数据映射到 ...

  9. [oldboy-django][2深入django]浏览器同源策略 + JSONP + cros

    浏览器的同源策略: - 同源: 同方法,同域名,同端口 http://www.baidu.com:8000 http: 方法 www.baidu.com: 域名 8000: 端口 - 定义 网上解析非 ...

  10. Java和C#中神奇的String

    Java String: String 类适用于描述字符串事物.该类是不可以被继承的.我们主要学习: 1字符串特性.字符串最大的特性:一旦被初始化就不可以被改变.重赋值只是改变了引用. 2字符串操作. ...