問題出現(xiàn)在flash/downfile.asp上,大家先看看代碼 <% Dim url,strUrl,strPath url = Replace(Replace(Replace(Request('url'), ''', ''), '%', ''), '\', '/') //首先先進(jìn)行一些字符的替換,'換成空,%也換成空,\換成/ If Len(url) > 3 Then If Left(url,1) = '/' Then Response.Redirect url //如果用戶提交的url第一個字符是/,那直接轉(zhuǎn)向url End If If Left(url,3) = '../' Then Response.Redirect url //同上,意思就是不給你用../跳轉(zhuǎn)目錄 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都處理掉了,是不可能用../跳轉(zhuǎn)目錄的。但是,他判斷../很奇怪,就判斷url的前三個字符而已。所以,嘿嘿!前三個字符不能是../,難道我后面不能是嗎?于是構(gòu)造一下url參數(shù)為'uploadfile/../../conn.asp',于是總體的地址就是http://127.0.0.1/flash/downfile.asp?url=uploadfile/../../conn.asp。嘿嘿~~conn.asp文件下載下來了吧。 這套整站程序用的人還是挺多的,我甚至看到有兩個黑客類的網(wǎng)站使用它。但是不約而同的是這個漏洞都存在??梢哉f,這個漏洞是通殺現(xiàn)在網(wǎng)上所有使用新云的系統(tǒng)的,連10.18出來的sp1都沒補上。但是,很多大站都是使用sql版本的,而且主機又屏蔽了1433端口,于是,利用就成了問題。對于access的系統(tǒng),只要后臺沒改名,而且md5密碼可以通過www.cmd5.com來查詢,后臺又有著數(shù)據(jù)庫備份的功能,獲得webshell是不成問題的。 |
|