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. 参考链接


在这里插入图片描述

是的,Burp Suite取的是HTTP/HTTPS数据包。当你在使用Burp Suite时,它会自动拦截和记录所有的HTTP请求和响应。你可以在Burp Suite中查看这些请求和响应,并进行分析。通过分析这些数据包,你可以发现潜在的漏洞和安全问题,从而提高应用程序的安全性。 如果你想了解如何使用Burp Suite取数据包,可以参考以下步骤: 1. 配置代理:在Burp Suite中,选择Proxy选项卡,然后选择Options。在Options窗口中,选择Proxy选项卡,然后将Intercept Client Requests和Intercept Server Responses选项设置为ON。 2. 配置浏览器:在浏览器中,将代理设置为Burp Suite的代理。默认情况下,Burp Suite监听127.0.0.1:8080端口。 3. 取数据包:在浏览器中访问应用程序,Burp Suite会自动拦截和记录所有的HTTP请求和响应。你可以在Proxy选项卡中查看这些请求和响应,并进行分析。 ```shell # 代码示例 # 配置代理 1. 进入Burp Suite,选择Proxy选项卡,然后选择Options。 2. 在Options窗口中,选择Proxy选项卡,然后将Intercept Client Requests和Intercept Server Responses选项设置为ON。 # 配置浏览器 1. 打开浏览器,进入设置。 2. 在设置中找到代理设置,将代理设置为Burp Suite的代理。默认情况下,Burp Suite监听127.0.0.1:8080端口。 # 取数据包 1. 在浏览器中访问应用程序,Burp Suite会自动拦截和记录所有的HTTP请求和响应。 2. 你可以在Proxy选项卡中查看这些请求和响应,并进行分析。 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈安全

点赞收藏也是赞赏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值