Burp Suite为何能抓到HTTPS的明文流量,Wireshark可以吗,公司电脑的加密流量也是被监控了吗?

在前期博文《万字图文详解HTTPS协议通信过程,结合抓包实战解析带你一次看透HTTPS!》中,我们知悉HTTPS通信内容是用会话密钥加密的,但不少细心的读者存在疑问:为何对于使用HTTPS协议的站点,在Burp Suite中拦截到的数据包却是“明文传输”的?如下图所示,这又是什么原理呢?那公司电脑的HTTPS流量是否也被监控了呢?…

在这里插入图片描述

为了让大家容易理解文章内容,博主先举一个实际案例进行演示说明,基于实际情况再进行分析解疑。

1. 实测场景说明

登录到百度首页(地址:https://www.baidu.com),点击右上角的登录按钮,输入用户名和密码后执行登录,我们接下来就拦截当前登录请求,看看用户名和密码到底是什么形式传输的。

在这里插入图片描述

这里注意一点,百度系网站执行登录时会统一跳转到百度账号认证网站https://passport.baidu.com进行登录认证,可在CMD窗口中执行ping命令,获得认证站点的IP地址36.155.132.75,记住此IP,接下来会用到。

在这里插入图片描述

2. Wireshark直接抓包https通信内容是密文根本看不懂

在博主前期文章中已经介绍了HTTPS的工作原理,我们知道所有HTTPS传输的报文信息在Wireshark中均标识为Application Data。

我们拦截了上面百度账号登录的数据包,在WireShark的显示过滤中输入ip.dst==36.155.132.75过滤出我们发送给百度认证服务器的数据包记录,可以发现所有请求均为密文,我们随便打开一个Application Data数据包,内容如下:

在这里插入图片描述

继续选择任意协议为TLSv1.2的数据包记录后右击选择『追踪流(Follow)』->『TCP流(TCP Stream)』,发现数据均经过加密,我们根本看不懂:

注:如果对Wireshark工具不会使用,可以参阅《通过15张图带你掌握网络抓包工具Wireshark必备使用技巧》快速入门上手。

实测结论1:如果直接使用WireShare嗅探HTTPS协议的数据包,我们就会看到TLS携带的Data都是密文,是无法拿到明文数据的。

3. BurpSuite抓包https通信内容是明文可以看懂

接下来针对以上场景,我们使用Burp Suite工具抓包,抓包前需要先跳转到『代理』>『拦截』选项卡,将『拦截切换』设置为“拦截”启用状态。

启用拦截

单击『打开浏览器(Open browser)』启动Burp内置浏览器,该浏览器已预先配置为开箱即用。当然,大家也可以拦截自己电脑上安装的浏览器请求,不过这需要多做一些额外配置(如安装Burp的CA证书、配置浏览器代理等)。不论哪种方式,都不会影响我们这次要介绍的主要内容。

在这里插入图片描述

打开浏览器后,地址栏输入我们实测的网址,访问成功后可以看到地址栏最前面多出了一个Burp的图标,点击后可以看到提示:当前百度站点正在被Burp Suite代理。

在这里插入图片描述

在上图右上角选择登录,可以在『代理』>『拦截』选项卡上看到被拦截的登录请求。

在这里插入图片描述

上面拦截到的密码其实是经过前端处理后的,我们查看前端代码其实可发现该HTTP站点确实对账户密码做了前端加密后再进行传输,对应的加密密钥在前端代码中也可以看到。

在这里插入图片描述

在前端对密码进行加密,即使https流量被嗅探后也无法解密得到原始密码。可见百度对安全考虑还是比较细致的。

到这里我们已经非常确认Burp Suite是可以解密HTTPS流量的,所以Burp Suite一定是有解密的密钥,具体是如何做到的呢?

实际上Burp Suite就是模拟了MITM(Man in the Middle,中间人)攻击,你还记得上面地址栏看到默认安装的Burp Suite CA证书吧。好奇的你也一定会问为什么需要安装Burp的CA证书?

为了拦截浏览器和目标web服务器之间的流量,Burp会切断浏览器与目标站点的HTTPS连接(模拟中间人攻击)。因此,如果我们想在Burp运行时尝试访问HTTPS URL,我们的浏览器将检测到它没有直接与真实的web服务器通信,会显示安全警告。

未安装Burp CA证书风险提示

为了防止此问题,Burp会为每个主机生成自己的TLS证书,并由自己的证书颁发机构(CA)签名。此CA证书在第一次启动Burp时生成,并存储在本地,此证书对应的私钥也会存储在本地计算机上(也可以在界面上单独导出)。为了在HTTPS网站上最有效地使用Burp Proxy,需要将此证书作为受信任的根安装在浏览器的信任存储中(Burp的默认内置浏览器中已经帮我们做好了这一步操作)。

Burp Suite证书导出界面(含私钥)

Burp将使用此CA证书为你访问的每个主机创建并签署TLS证书,允许你正常浏览HTTPS URL。最后我们就可以使用Burp查看和编辑通过HTTPS发送的请求和响应,就像处理任何其他HTTP消息一样。

Burp使用自己的CA给百度签署的TLS证书

实测结论2:Burp Suite能抓到HTTPS协议的明文内容是因为Burp Suite在浏览器上安装了自己的CA证书,并作为中间人(MITM)分别与客户端、服务端建立起了HTTPS通道,作为中间人,Burp Suite自然能够获取到所有的明文内容。具体原理可以参见下图:

Burp作为中间人获取明文流量的原理

说明:在浏览器上提前安装并信任Burp CA证书是Burp实施流量代理的关键环节,否则客户端不信任中间人,就无法实施HTTPS流量拦截了。

扩展问题1:我们知道,浏览器在接收到服务端发送回来的密文数据之后,会使用存储在本地的秘钥对数据进行解密。那么,WireShark能否也利用此秘钥来实现HTTPS站点的密文自动解密呢?

扩展问题2:公司/企业考虑到安全防护和信息泄露等问题,一般也会通过代理方式(类似于Burp)解密HTTPS流量,你的所有上网行为(包括各个社区、平台等的用户账户、密码等)都是可监控的。快来看看你在公司电脑上访问外部Https网站时,浏览器地址栏前面的证书是不是你公司自己颁发的吧?如果是,你的上网行为一定要谨慎,别乱看一些乱七八糟的站点,背后有一双👀在盯着呢!

4. 参考链接

  • https://portswigger.net/burp/documentation/desktop/external-browser-config/certificate

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1556789.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Excel-查找和引用数据-VLOOKUP 和 HLOOKUP 函数

在 Excel 中,VLOOKUP 和 HLOOKUP 是用于查找和引用数据的函数。下面是它们的基本用法: VLOOKUP 用途:在表格的第一列中查找某个值,并返回该值所在行的指定列中的数据。 语法: VLOOKUP(lookup_value, table_array, …

helm 测试卸载或删除(redis)

作者:程序那点事儿 日期:2024/02/07 18:30 查看redis 集群实例 kubectl get all -n redis 卸载集群实例 helm uninstall redis -n redis 删除pvc kubectl get pvc -n redis kubectl delete pvc redis-data-redis-master-0 redis-data-redis-replicas…

【Kubernetes】常见面试题汇总(五十九)

目录 129.问题:pod 使用 PV 后,无法访问其内容? 130.查看节点状态失败? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二&#xf…

Spring Cloud Netflix Ribbon 负载均衡详解和案例示范

1. 引言 在传统的集中式架构中,负载均衡器一般是放置在服务器端的,例如 Nginx等。随着微服务架构的兴起,服务实例的数量和部署地点变得更加动态和分布式,这使得在客户端进行负载均衡成为了一种可行且更灵活的方案。Netflix Ribbo…

Thinkphp/Laravel基于vue的金融理财产品销售系统设计与实现Vscode毕业设计成品源码.

目录 技术栈和环境说明具体实现截图设计思路关键技术课题的重点和难点:框架介绍数据访问方式PHP核心代码部分展示代码目录结构解析系统测试详细视频演示源码获取 技术栈和环境说明 采用PHP语言开发,开发环境为phpstudy 开发工具notepad并使用MYSQL数据库…

攻防世界 告诉你个秘密

前言:做题笔记。 下载 挺懵是不是。 仔细看,数字组合居多 字母不超过E 大概可以猜测这是16进制。 一开始以为是16进制转2进制的莫斯,但,,并不是。 试着将16进制转成ASCII字符。 别的不说,base64 老客户了…

Centos7 NTP客户端

目录 1. NTP客户端1.1 安装1.2 启动1.3 同步状态异常1.4 更改/etc/chrony.conf配置文件1.5 同步状态正常 1. NTP客户端 1.1 安装 如果chrony没有安装,可以使用以下命令安装 sudo yum install chrony1.2 启动 启动并设置开机自启 sudo systemctl start chronyd …

如何使用 Python 的 logging 模块记录日志

如何使用 Python 的 logging 模块记录日志 在编写 Python 程序时,日志记录是一个非常重要的部分。日志不仅帮助你在开发过程中调试代码,还可以在程序正式运行时提供诊断信息,帮助定位问题。如果你正在构建一个复杂的系统或者开发大型应用程序…

SLMA-雷达点如何转变为range image图像以及range image图像和球坐标系的关系;IROS 2020 REMOVERT动态SLAM论文解析

文章目录 雷达点如何转变到range image图像球体坐标关联 雷达点如何转变到range image图像 使用激光雷达采样得到的点一般包含x y z 坐标以及intensity、time、ring属性。参考如下: namespace velodyne_ros {struct EIGEN_ALIGN16 Point {PCL_ADD_POINT4D;float i…

多维放缩(MDS)与主成分分析(PCA)

文章目录 摘要Abstract1. 多维缩放(MDS)1.1 MDS降维条件1.2 MDS降维步骤 2. 主成分分析(PCA)2.1 最近重构性2.2 最大可分性2.3 PCA维度分析2.4 PCA实战2.5 PCA小结 3. 总结 摘要 多维缩放(MDS)是一种保持样本间距离关系的降维技术…

点餐小程序实战教程16餐厅管理

目录 1 创建数据源2 创建后台功能3 集成腾讯地图4 配置表单信息总结 在我们点餐小程序首页里,一开始会根据用户的位置信息去推荐餐厅,这就要求事先维护好餐厅的信息,本篇我们介绍一下餐厅信息的管理功能。 1 创建数据源 打开我们的数据模型&…

操作系统 | 学习笔记 | 王道 | 3.2 虚拟内存管理

3.2 虚拟内存管理 3.2.1 虚拟内存的基本概念 传统存储管理方式的特征 传统存储管理方式 连续分配 单一连续分配固定分区分配动态分区分配 非连续分配 基本分页存储管理基本分段存储管理基本段页式存储管理 特征: 一次性: 作业必须一次性全部装入内存后…

计算机网络:物理层 —— 数据的传输方式

文章目录 传输方式串行传输串行传输方式特点应用 并行传输特点应用 网卡的串/并转换同步传输同步时钟频率的误差问题特点应用 异步传输特点应用 单向通信特点应用 双向交替通信特点应用 双向同时通信特点应用 传输方式 串行传输 串行传输是一种数据传输方式,指的是…

基于SpringBoot+Uniapp的家庭记账本微信小程序系统设计与实现

项目运行截图 展示效果图 展示效果图 展示效果图 展示效果图 展示效果图 5. 技术框架 5.1 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念,提供了一套默认的配置,让开发者可以更…

博诚星光协助企业挑战中国舆论新环境--进入“春秋战国”时代

在互联网时代,中国的舆论环境如同“春秋战国”,信息产生呈现出爆炸式增长。根据统计,国内自媒体的数量已突破2000万,每天生成的信息量高达10亿条。这种庞大的信息洪流,为企业和品牌带来了前所未有的舆论风险。 随着新媒体平台的不断涌现,舆论环境愈发复杂,传统营销方式已难以适…

1007C步行(树上贡献统计)

http://cplusoj.com/d/senior/p/SS241007C 首先可以发现每条边的贡献为 2 min ⁡ ( w x , S − w x ) 2\min(w_x,S-w_x) 2min(wx​,S−wx​), x x x 为下端的点 考虑现在断一条边,连一条边。我们先不考虑断边,只连边。那么这是一个基环树&…

C语言 assert 函数 - C语言零基础入门教程

目录 一.assert 函数简介二.assert 函数使用三.assert 函数用法总结与注意事项四.猜你喜欢 零基础 C/C 学习路线推荐 : C/C 学习目录 >> C 语言基础入门 一.assert 函数简介 对于断言,相信大家都不陌生,大多数编程语言也都有断言这一特性。简单地讲…

【查找算法概念】与【线性表的相关查找算法】

1.知识回顾 2.查找算法相关问题汇总 2.1在哪里查找 查找表 2.2通过什么进行查找 关键字的对应 主关键字:比如我们可以通过一个学号来唯一确定一名学生 这里的学号就是一种主关键字。 次关键字:而通过一个名字李华,我们可能会确定不止一名…

【单例模式】

单例模式是指在内存中只会创建且仅创建一次对象的设计模式。 一、实现方式 1. 饿汉式 在类加载的时候就创建实例,无论是否使用,实例都会被创建。优点是实现简单,线程安全。缺点是可能造成资源浪费,而程序可能不一定会使用这个实例…

大数据新视界 --大数据大厂之大数据于基因测序分析的核心应用 - 洞悉生命信息的密钥

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…