首页 > 安全 > 系统安全 >

搜狗高速浏览器处理TLS证书不当可导致中间人攻击

2014-12-17

搜狗高速浏览器处理SSL TLS无效证书不当,可导致中间人攻击详细说明:当搜狗浏览器打开的https网页提供的SSL TLS证书无效时(如自签名、域名不匹配),它会自动打开页面,且没有明显的文字提示。光在"https"上画

搜狗高速浏览器处理SSL/TLS无效证书不当,可导致中间人攻击

当搜狗浏览器打开的https网页提供的SSL/TLS证书无效时(如自签名、域名不匹配),它会自动打开页面,且没有明显的文字提示。光在"https"上画个杠和锁上画个叉,我不知道有几个用户能注意到。

1.png



我曾经尝试使用HTTPS缓存污染,但是没成功,每次打开搜狗浏览器页面都会重新加载,至今没想明白为什么。也尝试过用跨站引用来窃取cookie,也没成功。证书不正确的资源会自动屏蔽。

但是以下两个利用是成功的(无需安装根证书、无需用户交互,部分思路来源于 http://fex.baidu.com/blog/2014/04/traffic-hijack-2/):

一是,如果用户使用网站的自动登录功能的话,cookie会在第一次访问时一并发送,所以自动加载页面可能导致cookie泄露。

二是,如果没有自动登录,但是有自动填表功能。https被劫持的情况下,中间人可插入JavaScript读取并发送表单内容。

以上这两点可以通过自动跳转来利用,可窃取任意HTTPS网站的cookie或密码(如果浏览器有记录的话)。

非HTTPS网站的cookie和密码被窃取是很正常的,但是如果HTTPS网站也能被窃取cookie,那这就是浏览器的漏洞了。

Fiddler下的演示(再次强调,无需安装Fidder的根证书):

加入以下AutoResponder规则:

redir rules.png



打开搜狗浏览器,访问http://www.example.com/,然后看Fiddler的抓包结果,cookie尽收眼底:

redir.png



重定向的过程非常快,因为HTTP请求的回复是中间人发的,而不是服务器发的。所以这个过程用户很难察觉。而且全过程中浏览器连显示“红杠https”的机会都没有。用户看到的就是最后加载的百度首页。

当然这仅仅是演示,实际攻击中可以使用更加灵活的规则,比如刚开始跳转任意网站到“认证”页,点击确认进入最初跳转点。也可以用meta refresh跳转,因为3xx重定向有最大跳转次数限制。

自动填表的懒的弄了,我想应该可以拿到密码。

解决方案:

当SSL证书无效时,不要打开页面,除非用户点击继续。

evssl.png

相关文章
最新文章
热点推荐