1. 漏洞描述
- 用户凭据通过未加密的通道传输。当我们在网站上面提交敏感数据到服务器的过程中未进行相关加密处理,导致攻击者通过中间人攻击方式(劫持、嗅探等)【如果加密方式是常见的加密也可以解密的(比如:MD5,RSA 等–另外base64只是一种编码方式并不算是加密!】即可获取到这些未加密的敏感数据。所有经过网关的流量都可以被黑客通过嗅探(ARP欺骗)的方式抓取到。
- 当攻击者获取到这些数据之后,就可以用这些信息以合法用户的身份进入到应用系统中——甚至可能进入到应用系统后台中,一旦进入到应用系统中那么就可以获取更多的敏感数据,以及更有机会发现更多的漏洞。
2. 漏洞验证
- 找到网站或者web系统登录页面。
- 通过过对网站登录页面的请求进行抓包,分析其数据包中相关password(密码)参数的值是否为明文。
- 工具可用burp、wireshark、filder等等,抓包分析的密码
- 浏览器的F12中的“网络”模块功能并点击HTML进行筛选,点击登录即可获取到post或者get的请求头及请求主体的内容,如下图所示,就获取到了http明文登录的敏感数据了。
3. 修复建议
- 由于用户凭据为敏感信息,应始终通过加密通道 (HTTPS) 传输,以避免被恶意用户拦截。因此应始终通过加密连接 (HTTPS) 将其传输到服务器。
- 如果不用 HTTPS,可以在网站前端用 Javascript 做密码加密,加密后再进行传输。
- 使用正规的ca机构颁发的https证书
- 采用非对称加密方式(不可逆的加密方式)
4. 参考学习
- 浅谈“密码明文传输”
- 渗透测试(二):敏感信息明文传输
|