前几天l-blog出了跨站漏洞..具体说明见
_blank>[url]http://www.ciker.org/blogview.asp?logID=317[/url]
不在本文讨论之内...虽然漏洞危害不是很大..但毕竟是有点影响...管理员要时时担心自己的cookies 是否会被窃取..出了漏洞后..我进后台就发现...黑基的一个兄弟badwolf正在试图偷我厂cookies了..我改密码..哈哈 _razz.gif" align=absMiddle border=0>

然后到了晚上..管方站就出了漏洞修补...具体见
_blank>[url]http://www.loveyuki.com/blogview.asp?logID=987[/url]
为了安全..我也下了个..就三个文件admincp.asp及include下的function.asp和ubbcode.asp...覆盖了原来的文件后..再试下跨站..已经不行了..为此松了一口气.......可问题就这样来了..这几天发现我blog里文章的评论全成了
没有评论内容,只是引用
这样...开始就一个..以为是某位朋友故意留下的也没在意..今天又发现这样的话好几个..后来蕊儿姐姐来我BLOG发表评论也是发现不能评论...我才发现出了问题..
如图
L-Blog跨站漏洞补丁文件的不足之处_休闲javascript:if(this.width>500)this.width=500" title="点击这里用新窗口浏览图片">
接着在发表新日志时..上传文件也发现出了点问题.
选择一图片点上传后回提示上传成功..并返回
 [ img]p_w_uploads/month_0505/2005-05-28 23:15pmes_pinglun.jpg[ / img]

汗.文件名变成了2005-05-28 23:15pmes_pinglun.jpg这样的了...但是访问时却没这个文件..进FTP看同样也是..也就意味着文件没有上传成功.....再次对作者对漏洞修补的心态表示怀疑....

没办法...只有自己研究了..可惜偶又不懂ASP...还好文件不是很多..仅三个而已..就算把所有的代码看完也不会花多久的时间..后来经过拿原代码和管方站发布的漏洞修补对比..才发现..起主要作用的文件也就function.asp这么一个..

而admincp.asp文件代码并没改动多少..刚看了一眼代码就发现一个问题
<%'On Error Resume Next%>这句话记的是容错处理语句把..我记的好象是
<%On Error Resume Next%>的啊...这里多了一个'....不知道会不会对代码运行造成影响....郁闷...暂且不说这个..继续下面的,.,

ubbcode.asp这个文件大小为8KB而原来的文件是11KB...不知道这个算不算修改了呢?代码自然比原来的少了...

接着是function.asp文件了...function是功能的意思..看样子这个是主要的了..
经过分析...发现..作者修补漏洞后的代码和原来的代码只有几处地方被改动..其中在对跨站漏洞中起主要作用的还就是这么一段代码
Function CheckLinkStr(Str)
   Str = Replace(Str, "document.cookie", ".")
   Str = Replace(Str, "document.write", ".")
   Str = Replace(Str, "javascript:", "javascript ")
   Str = Replace(Str, "vbscript:", "vbscript ")
   Str = Replace(Str, "javascript :", "javascript ")
   Str = Replace(Str, "vbscript :", "vbscript ")
   Str = Replace(Str, "[", "[")
   Str = Replace(Str, ]", "]")
   Str = Replace(Str, "<", "<")
   Str = Replace(Str, ">", ">")
   Str = Replace(Str, "{", "{")
   Str = Replace(Str, "}", "}")
   Str = Replace(Str, "|", "|")
   Str = Replace(Str, "script", "script")
   Str = Replace(Str, "SCRIPT", "SCRIPT")
   Str = Replace(Str, "Script", "Script")
   Str = Replace(Str, "script", "Script")
   Str = Replace(Str, "object", "object")
   Str = Replace(Str, "OBJECT", "OBJECT")
   Str = Replace(Str, "Object", "Object")
   Str = Replace(Str, "object", "Object")
   Str = Replace(Str, "applet", "applet")
   Str = Replace(Str, "APPLET", "APPLET")
   Str = Replace(Str, "Applet", "Applet")
   Str = Replace(Str, "applet", "Applet")
   Str = Replace(Str, "embed", "embed")
   Str = Replace(Str, "EMBED", "EMBED")
   Str = Replace(Str, "Embed", "Embed")
   Str = Replace(Str, "embed", "Embed")
   Str = Replace(Str, "document", "document")
   Str = Replace(Str, "DOCUMENT", "DOCUMENT")
   Str = Replace(Str, "Document", "Document")
   Str = Replace(Str, "document", "Document")
   Str = Replace(Str, "cookie", "cookie")
   Str = Replace(Str, "COOKIE", "COOKIE")
   Str = Replace(Str, "Cookie", "Cookie")
   Str = Replace(Str, "cookie", "Cookie")
   Str = Replace(Str, "event", "event")
   Str = Replace(Str, "EVENT", "EVENT")
   Str = Replace(Str, "Event", "Event")
   Str = Replace(Str, "event", "Event")
   CheckLinkStr = Str
End Function
虽然我是看不大懂是什么意思...但感觉就是这个了...改了下后.在本地调试..成功...但那个评论的问题还是未得到解决...继续看代码....

发现修补后的function.asp和原来的function.asp代码比..少了几段代码....开始推测是这段代码造成的影响..
中间一段
Function GeneratorNum(Length)
   Dim i, tempS
   tempS = "1234567890"
   Generator = ""
   If isNumeric(Length) = False Then
     Exit Function
   End If
   For i = 1 to Length
     Randomize
     Generator = Generator & Mid(tempS,Int((Len(tempS) * Rnd) + 1),1)
   Next
End Function
和最后一段
Function ChkBadWords(strContent)
dim BadWord,aa
BadWord = split(BadWordsStr, ",")
for aa = 0 to ubound(BadWord)
strContent = Replace(Lcase(strContent), Lcase(BadWord(aa)), string(len(BadWord(aa)),"*"))
next
ChkBadWords = strContent
End Function
%>


添加进文件后..把自己修改的文件覆盖掉...自己试下评论......怀着激动的心情看结果....呵呵...

成功了.........虽然我对ASP不是很懂..但抱着试一试的想法还是改成功了....感觉作者有点是在应付....太不小心了.....希望Loveyuke看到了不要骂我就好...毕竟这程序是你的嘛....呵呵..

我也只是拿来就用而已..希望继续努力写出更好的程序...

我把我修改后的function.asp传来给有和我同样问题的朋友下载...由于本人不懂ASP..如果不妥之处还望见晾...大家就等
Loveyuke发布更完美的补丁把..
 _0505/28233804olds_function.rar" target=_blank>点击下载此文件