Author:Charlie
微博:http://weibo.com/yinyongyou
转载请带我环游网络。
---------------------------------------------------------------------------------------------------------
漏洞存在版本号:asp 3.0 (当天在官网下载的最新版本)
漏洞文件:Admin/Admin_Mold.asp
貌似还没有谁公开,遂贴上一份,仅作学习研究之用,请勿用于非法用途。
PS背景:某天对朋友网站进行渗透过程中。进入了此系统后台。进了后台自然就想拿个webshell权限。遂下载了一份七禧舞曲管理系统 ASP版。分析了下上传漏洞。没想到真有。于是长驱直入,顺利拿shell。
此类漏洞还有很多。下面贴上典型的一段。这是模板管理->添加模板 里面的后台处理代码。
Sub MaddSave()
Dim content,filedir,filetype,folder,FileName,folders
content=Request.Form("content")
folder=SafeRequest("folder","post")
folders=folder
FileName=SafeRequest("FileName","post")
IF InstrRev(FileName,".")>0 Then
filetype=lcase(mid(FileName,instrrev(FileName,".")))
End IF
folder=folder&FileName
IF filetype=".html" or filetype=".htm" or filetype=".js" or filetype=".css" or filetype=".txt" Then
fso.CreateFile folder,True ,content
Call Cache.ReMoveAll()
Call AdminAlert("恭喜您,添加模板成功了!","Admin_Mold.asp?action=mold&path="&folders,0):Response.End
Else
Call AdminAlert("文件名出错了,操作已被禁止!","Admin_Mold.asp?action=mold&path="&folders,1):Response.End
End IF
Response.End
End Sub
上面有提取后缀作为比较。限制上传的文件名。
提取后缀的代码:
filetype=lcase(mid(FileName,instrrev(FileName,".")))
比较代码:
IF filetype=".html" or filetype=".htm" or filetype=".js" or filetype=".css" or filetype=".txt" Then
猛一看,木有问题。但是作者只考虑到了过滤后缀名,没有考虑过文件解析漏洞。
假如我们将文件命名为 XXX.asp;.txt 或 XXX.asp;.js 等文件名都是可以的成功保存,而它又会被提交给asp.dll解析执行。
利用方法:
1.添加模板
2.文件名填写为 fuuuck.asp;.txt 这类看起来人畜无害的名字。
3.模板内容填写 文明代码 (你懂的)。