http://yoursunny.com/t/2011/FiddlerHTTPS/

阳光男孩 发表于2011-03-19

开发互联网应用的过程中,常常会设立或利用网络接口。为了调试对网络接口的使用,往往需要查看流入和流出网络接口的网络流量或数据包。“抓包工具”就是一类用于记录通过网络接口的数据的工具。

我们知道,网络协议是分层设计的,OSI模型将网络协议分为了7个层次。不同的抓包工具,可以在网络协议的不同层次上工作。常用的Wireshark就是一种在网络层上工作的抓包工具,不仅自带大量的协议分析器,而且可以通过编写Wireshark插件来识别自定义的协议。虽然Wireshark功能强大,但是却并不能解决所有的抓包问题,其原因在于:

  • Wireshark工作在网络层;如果计算机配置了IPSec传输层加密,则在网络层的流量都已经被加密,什么也看不到。
  • 当今大量网络接口使用HTTPS加密,Wireshark不能抓取到HTTPS流量的明文内容。

那么,如何抓取到HTTPS请求的明文内容呢?使用Fiddler就可以办到。

Fiddler是Eric Lawrence编写的HTTP抓包软件。Fiddler工作在应用层上,作为其他程序的HTTP代理服务器。它可以直接抓取并分析HTTP流量,也可以作为“中间人”抓取并分析HTTPS流量。

Fiddler抓取HTTPS流量的原理

TLS是一种端到端的传输层加密协议,是HTTPS协议的一个组成部分。访问HTTPS站点时,HTTP请求、响应都通过TLS协议在浏览器和服务器之间加密传输,并且通过数字证书技术保证数据的保密性和完整性;任何“中间人”、包括代理服务器都只能转发数据,而无法窃听或者篡改数据。

要抓取HTTPS流量的明文内容,Fiddler必须解密HTTPS流量。但是,浏览器将会检查数字证书,并发现会话遭到窃听。为了骗过浏览器,Fiddler通过使用另一个数字证书重新加密HTTPS流量。Fiddler被配置为解密HTTPS流量后,会自动生成一个名为DO_NOT_TRUST_FiddlerRoot的CA证书,并使用该CA颁发每个域名的TLS证书。若DO_NOT_TRUST_FiddlerRoot证书被列入浏览器或其他软件的信任CA名单内,则浏览器或其他软件就会认为HTTPS会话是可信任的、而不会再弹出“证书错误”警告。

开启HTTPS流量解密功能后,Fiddler将会提示用户将DO_NOT_TRUST_FiddlerRoot证书列入IE浏览器的信任CA名单。用于调试客户端时,这已经足够了;Firefox用户也可以很方便的手动导入DO_NOT_TRUST_FiddlerRoot证书。但是,若要在服务器上抓取ASP.Net发出的HTTPS请求,这是不够的——你必须将DO_NOT_TRUST_FiddlerRoot证书导入“机器帐号”的信任CA名单。

操作录像

该录像演示了下列操作:

  1. 开启Fiddler的HTTPS流量解密功能
  2. 将DO_NOT_TRUST_FiddlerRoot证书导入“机器帐号”的信任CA名单
  3. 将PHP脚本的代理服务器设置为127.0.0.1:8888,并抓取HTTPS请求

主要网络开发框架的抓包配置

Fiddler的工作方式是代理服务器(端口号8888)。只要开发框架支持设置HTTP代理服务器,都可以使用Fiddler。

#PHP curl
$ch=curl_init('https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.5.1.min.js');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_PROXY,'127.0.0.1:8888');//设置代理服务器
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,0);//若PHP编译时不带openssl则需要此行
$resp=curl_exec($ch);
curl_close($ch);
<!-- ASP.Net web.config -->
<configuration><system.net><defaultProxy enabled="false"><proxy proxyaddress="http://127.0.0.1:8888/"/></defaultProxy></system.net>
</configuration>

如果你使用linux服务器,请将Fiddler安装在一台Windows计算机上并在Tools - Fiddler Options - Connections勾选Allow remote computers to connect,并手动将FiddlerRoot.cer导入linux服务器的信任CA名单,最后将代理服务器设置成Fiddler所在IP的8888端口。

在服务器上用Fiddler抓取HTTPS流量相关推荐

  1. 【转载】在服务器上用Fiddler抓取HTTPS流量

    转载地址:https://yoursunny.cn/t/2011/FiddlerHTTPS/ 在服务器上用Fiddler抓取HTTPS流量 开发互联网应用的过程中,常常会设立或利用网络接口.为了调试对 ...

  2. Fiddler抓取HTTPs流量

    Fiddler抓取HTTPS流量的原理 TLS是一种端到端的传输层加密协议,是HTTPS协议的一个组成部分.访问HTTPS站点时,HTTP请求.响应都通过TLS协议在浏览器和服务器之间加密传输,并且通 ...

  3. 浅谈HTTPS以及Fiddler抓取HTTPS协议

    原文 浅谈HTTPS以及Fiddler抓取HTTPS协议 最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求 ...

  4. HTTPS-使用Fiddler抓取HTTPS数据包原理

    最近想尝试基于Fiddler的录制功能做一些接口的获取和处理工作,碰到的一个问题就是简单连接Fiddler只能抓取HTTP协议,关键的登录请求等HTTPS协议都没有捕捉到,所以想让Fiddler能够同 ...

  5. 使用fiddler抓取HTTPS协议数据与疑难杂症终极解决方案

    作者:韦玮 转载请注明出处 常规设置: Fiddler默认只能抓取HTTP协议的网页,不能抓取HTTPS协议的网页,而我们很多时候,都需要抓HTTPS协议的网页,比如抓淘宝数据等.今天,韦玮老师会为大 ...

  6. 抓包工具Fiddler的使用教程(十二)下:Fiddler抓取HTTPS

    在教程十二(上),我们也了解了HTTPS协议,该教程就和大家分享Fiddler如何抓取HTTPS 抓包工具Fiddler的使用教程(十二):[转载]HTTPS协议 再次回忆一下关键内容: iddler ...

  7. Fiddler抓取https数据报文,Fiddler数字证书解决方案

    前言: 一.浅谈HTTPS 我们都知道HTTP并非是安全传输,在HTTPS基础上使用SSL协议进行加密构成的HTTPS协议是相对安全的.目前越来越多的企业选择使用HTTPS协议与用户进行通信,如百度. ...

  8. 如何用fiddler抓取HTTPS的详细教程(附fiddler安装教学)

    对于想抓取HTTPS的测试初学者来说,常用的工具就是fiddler,可是在初学时,大家对于fiddler如何抓取HTTPS真是伤了脑筋,可能你一步步按着网上的帖子成功了,那当然是极好的,有可能没有成功 ...

  9. Fiddler抓取https设置及其原理

    Fiddler抓取https设置及其原理 2018-02-02 目录 1 HTTPS握手过程 2 Fiddler抓取HTTPS过程 3 Fiddler抓取HTTPS设置 参考 数字签名是什么? 1 H ...

最新文章

  1. 这是我见过最简单粗暴的辞职书了
  2. 链式链表的C风格实现
  3. [Leedcode][JAVA][第983题][最低票价][动态规划]
  4. 基于 Token 的身份验证方法
  5. HTML+CSS+JS实现 ❤️贪吃蛇游戏、你能吃过我?❤️【源码送给你一起来玩-建议收藏】
  6. LSTM背后的数学原理
  7. 求助!ENDnoteX8+Word2016可关联,但总提示【该文档有宏】等bug
  8. lua 遍历删除_lua中table如何安全移除元素
  9. 视频播放器三大底层架构
  10. 【Proteus仿真】AT24C02数据读写+LCD1602显示
  11. Paint 常用方法记录 +
  12. 【JavaScript】offset、client、scroll
  13. 逆讯图驴企业版,这一次颜值更高
  14. 小米手环模拟门禁卡读卡失败_工作生活好帮手 篇一:小米note3模拟门禁卡 你该不该知道的可能都在这里_安卓手机...
  15. 新网的虚拟主机连接mysql_虚拟主机怎么导入数据库
  16. window系统下多个版本谷歌浏览器并存
  17. Nexys A7 上手历程 【流水灯】
  18. 快手616战报首发,次抛精华引新浪潮,快品牌跃入热榜top3
  19. UNcrackable-Level1绕过root检测
  20. eccel身份证截取指定格式日期插入10000条序号

热门文章

  1. windows7内存诊断工具有用吗_Win7怎么使用自带工具进行内存检测?
  2. 高性能dhcp服务器,基于线程池机制的高性能DHCP服务器研究与实现
  3. 面积积分_被积函数的奇偶性问题(定积分、重积分、线积分、面积分)
  4. 计算机光盘工作原理,CD-ROM的工作原理
  5. netty web 容器_Netty - 高性能网络应用框架常见面试题
  6. 开放下载 | 和 4000+Java 开发者共读《Spring Cloud Alibaba 从入门到实战》
  7. 初探云原生应用管理(二): 为什么你必须尽快转向 Helm v3
  8. 2300+ commits,80+ Contributors,阿里 PouchContainer 工程质量实践
  9. yii 全选 php,yii2中gridview使用技巧小结(四)——全选等批量操作
  10. webuploader 怎么在react中_另辟蹊径搭建阅读React源码调试环境支持所有React版本细分文件断点调试...