本文转自:http://blog.csdn.net/idlear/article/details/50999490

fiddler抓包HTTPS请求

跟着教程来,保证100%成功抓HTTPS包

教程开始

安装fiddler

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

配置fiddler

  1. 打开fiddler配置Tools –> 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。提示需要重启fiddler。 
  4. 哈哈,高端的来了,需要写点代码。这里是为了可以抓客户端使用httpURLConnection的包。 
    Ruler –>CustomizeRules 
    在函数OnBeforeResponse里面添加下面代码:
if (oSession.oRequest["User-Agent"].indexOf("Android") > -1 && oSession.HTTPMethodIs("CONNECT")) {
oSession.oResponse.headers["Connection"] = "Keep-Alive";
}

添加后代码为:

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";
}
}

不要忘记重启fiddler!!!

配置手机

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

抓包截图

测试机上没装多少软件,打开百度钱包来试试 

好了。大功告成!

让我们想想

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

最新文章

  1. react+redux官方实例TODO从最简单的入门(1)-- 前言
  2. IOS textField(textview)字数判断
  3. Java课程
  4. Vmware player 12
  5. 轻量级Web API实现,带接口界面的Jayrock JsonRPC接口组件升级版
  6. 2016 Multi-University Training Contest 5 World is Exploding
  7. 涂抹Oracle笔记1-创建数据库及配置监听程序
  8. Oracle 经典SQL 专为笔试准备
  9. 关于require.js的模块化开发
  10. rocketmq 4.4部署安装
  11. maven 私服同步无法获取依赖的pom.xml的依赖
  12. windows 允许其他电脑访问本地mysql数据库
  13. IO流的分类
  14. 后台拿webshell方法(2)
  15. Vue.js最佳实践
  16. Kattis之旅——Perfect Pth Powers
  17. JFinal文件上传时直接使用getPara()去接受表单的数据接收到的数据一直是null?
  18. Windows控制程序网站带宽及Qos(TOS或DSCP)
  19. 基础知识点 关于 prototype __proto__
  20. Oracle ORA-12541:TNS:无监听程序

热门文章

  1. redis 配置命令
  2. PHP生成二维码,PHPQRCode
  3. BZOJ3052/UOJ#58 [wc2013]糖果公园 莫队 带修莫队 树上莫队
  4. TCP/UDP 协议,和 HTTP、FTP、SMTP,区别及应用场景
  5. pyqt text browser 设置文本
  6. Mex-hdu4747(DP)
  7. 2017-2018-1 20179202《Linux内核原理与分析》第三周作业
  8. 大数据小白系列——HDFS(1)
  9. shell下获取系统时间
  10. Codeforces.GYM100548G.The Problem to Slow Down You(回文树)