分享

新云网站管理系统任意文件漏洞_安全教程_脚本之家

 独孤九剑8 2016-01-27
问题出现在flash/downfile.asp上,大家先看看代码

<%
Dim url,strUrl,strPath
url = Replace(Replace(Replace(Request('url'), ''', ''), '%', ''), '\', '/')
//首先先进行一些字符的替换,'换成空,%也换成空,\换成/

If Len(url) > 3 Then
If Left(url,1) = '/' Then
Response.Redirect url //如果用户提交的url第一个字符是/,那直接转向url
End If
If Left(url,3) = '../' Then
Response.Redirect url //同上,意思就是不给你用../跳转目录
End If
strUrl = Left(url,10)
If InStr(strUrl, '://') > 0 Then //这个,汗·~~://不懂干什么用的
Response.Redirect url
End If
If InStr(url, '/') > 0 Then
strPath = Server.MapPath('.') & '\' & url //补充物理地址了
strPath = Replace(strPath, '/', '\') //替换/为\呢
Call downThisFile(strPath) //HOHO~~开始下载了
Else
Response.Redirect url
End If
End If

Sub downThisFile(thePath)
Response.Clear
On Error Resume Next
Dim stream, fileName, fileContentType

fileName = split(thePath,'\')(UBound(split(thePath,'\')))
Set stream = Server.CreateObject('adodb.stream')
stream.Open
stream.Type = 1
stream.LoadFromFile(thePath)
Response.AddHeader 'Content-Disposition', 'attachment; filename=' & fileName
Response.AddHeader 'Content-Length', stream.Size
Response.Charset = 'UTF-8'
Response.ContentType = 'application/octet-stream'
Response.BinaryWrite stream.Read 
Response.Flush
stream.Close
Set stream = Nothing
End Sub
%>
似乎是url都处理掉了,是不可能用../跳转目录的。但是,他判断../很奇怪,就判断url的前三个字符而已。所以,嘿嘿!前三个字符不能是../,难道我后面不能是吗?于是构造一下url参数为'uploadfile/../../conn.asp',于是总体的地址就是http://127.0.0.1/flash/downfile.asp?url=uploadfile/../../conn.asp。嘿嘿~~conn.asp文件下载下来了吧。
这套整站程序用的人还是挺多的,我甚至看到有两个黑客类的网站使用它。但是不约而同的是这个漏洞都存在。可以说,这个漏洞是通杀现在网上所有使用新云的系统的,连10.18出来的sp1都没补上。但是,很多大站都是使用sql版本的,而且主机又屏蔽了1433端口,于是,利用就成了问题。对于access的系统,只要后台没改名,而且md5密码可以通过www.cmd5.com来查询,后台又有着数据库备份的功能,获得webshell是不成问题的。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多