最近在工作中,由于同事对敏感信息明文传输这个漏洞认识不深,导致工作出了一些问题。经过一番研究后,发现了其中的一些小知识点,在这里跟大家分享下,具体情况是这样的:
1. 通过burpsuit抓到包含明文的数据包时,我们首先应该查看该网站使用的是HTTP协议还是HTTPS协议,如果使用HTTP协议传送明文的敏感信息,那一定的是有问题的。但是如果网站使用的是HTTPS协议,情况则有所不同。
2. 这里先介绍一下什么是HTTPS协议,HTTPS被称作安全的HTTP协议,百度上对它的解释如下:
HTTPS,即超文本传输安全协议,是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL。
说了这么多,部分萌新可能对我说的应用层和传输层有些疑惑,下面我来简单介绍下OSI七层模型每层的作用,以及数据包从终端A—到达终端B的过程。
以OSI七层模型为例,数据每从高层向低层传输一层,低层都会在高层的发来的数据基础之上加上自己的协议包首部.
使用HTTPS协议的数据包在到达传输层时,传输层除了在数据包之前加上该层协议对应的包首部之外,SSL协议会将此数据包(HTTP协议的数据包)加密,然后再传输。所以说HTTPS协议是基于HTTP协议的,且它的安全性依赖于SSL协议。
2、用户发送HTTPS请求,攻击者生成公钥和私钥对1,将自己的证书和公钥发送给用户A,用户A验证攻击者证书的合法性之后,随机生成自己的公钥私钥对,然后用攻击者的公钥1将自己的公钥和HTTP请求发送给攻击者。
3、攻击者收到用户A请求后,用自己的私钥1将数据包解密,得到用户A的请求和用户A的公钥,之后向服务器发送一个请求。服务器生成自己的公钥私钥对,然后将自己的证书和公钥发送给攻击者,攻击者浏览器验证服务器证书的合法性后,再随机生成公钥私钥对2,然后用服务器发送给自己的公钥将用户A的请求和自己的公钥2发送给服务器。
4.服务器收到攻击者发来的请求后,用自己的私钥解密得到攻击者发来的HTTP请求和公钥2,然后处理HTTP请求,处理完成后将处理结果用攻击者的公钥加密发送给攻击者。
由以上过程可以看出,使用HTTPS协议的网站,攻击者想使用中间人窃听的方式拿到用户明文数据,是有一定难度的。
文字表达能力太差。在这里总结下吧
使用Burp抓取数据包,看到数据包内的敏感信息以明文的方式存在,这里存在两种情况:
1.如果网站使用HTTP协议传输数据,则存在敏感信息明文传输问题。攻击者如果使用中间人欺骗的方式可轻易获取明文数据。
2.如果网站使用HTTPS协议,那么数据包在网络中传递时就是加过密的(这里的网络中是指数据包出了发送端A,但还未到达接收端B,这段时间)。攻击者如果使用中间人欺骗的方式获取数据包,拿到的也是经过加密后的数据包。如果攻击者想获得明文数据包,则需要在用户电脑上安装自己的HTTPS证书,并且需要将用户浏览器代理IP设置为攻击者自己的IP。
为了防止攻击者通过更改用户代理的方式截获用户数据,在这里建议即便网站使用HTTPS协议进行数据传输,也要将数据在前端经过JS加密后再进行传输。这样即使攻击者通过上述方式截获用户流量,在经过HTTPS解密后拿到的依然是通过JS加密后的敏感数据。这样就进一步给攻击者增加了攻击成本。
原文链接:https://blog.csdn.net/sd***58874/article/details/85228641
本文作者:Lemon
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/171312.html