多余映射与上传攻击
在任何一个网站程序中,文件上传提交框是随处可见的。通常这类的上传框只是一个调用框架,将用户的文件参数提交给真正实现上传功能的程序文件,其代码如下:
[cc lang="html"]
[/code]
从代码中可知,真正实现上传功能的程序文件为“user_upfile.asp”,一切对用户上传的文件类型判断 、文件保存路径及文件名等,都在此文件中。但是“user_upfile.asp”文件是否对各种参数进行了严格的控制呢?攻击者是否会绕过程序的限制,上传木马后台控制网站?
一,来自 asp.dll 映射的攻击
在百度或google搜索引擎中,以关键字“Powered By 9Cool”进行搜索,找一个使用“9Cool九酷网络个人主页空间管理系统 v4.1免费版”的网站,或在本地搭建一个“9Cool九酷网络个人主页空间管理系统 v4.1免费版”网站空间平台,进行攻击检测。
(1)对 asp 与 aspx 上传的检测
首先,注册一个用户并登录 9Cool 空间,在个人网站管理系统中,单击“管理网站”链接,打开网站管理页面,单击“上传文件”按钮,打开文件上传页面。
在上传页面中,浏览指定本地的任意一个 ASP 木马文件,假设文件名为“test.asp”,单击“开始上传”按钮,将会返回错误信息,提示非法的文件格式。
再尝试上传 aspx 后缀的网页木马后门,同样显示类似的提示信息,说明“9Cool九酷网络个人主页空间管理系统 v4.1 免费版”程序过滤了 ASP 与 ASPX 等文件格式的上传,在一定程序上保证了博客网站的安全性。但是事实真的如此吗?
二,改个后缀就能上传
将上传的网页木马后门文件改名,改为“test.asa”,再尝试进行上传。
此次,文件上传成功了。这说明“9Cool九酷网络个人主页空间管理系统 v4.1”免费版程序未过滤 asa 格式文件的上传。
同样地,将上传的文件更改后缀后,测试上传 .cer、.cdx 文件类型,则上传成功。
三,多余映射,执行后门
上传的 asa 和 cer、.cdx 后门是否会运行呢?返回刚才的上传文件管理页面,可以看到上传成功的文件列表。上传的 asa 和 cer、cdx 后门后缀没有发生变化,单击“asp.asa”文件链接,在新页面中打开该文件,可以看到链接为“http://www.abc.com/test/asp.asa”,也即“http://www.abc.com/注册用户名/asp.asa”
由于这里测试用的是“桂林老兵 ASP 站长助手”,因此需要用链接“http://www.abc.com/test/asp.asa?action=login”才能访问木马后门。可看到木马后门成功地执行了。
同样,cer 和 .cdx 的后门全部都能够正常执行,攻击者可以顺利地控制整个网站服务器。
四,限制“不许可”,很不可靠
“9Cool九酷网络个人主页空间管理系统 v4.1免费版”程序之所以出现如此严重的漏洞,原因在于程序的编写者犯了一个较易被忽略的错误--仅在后台管理中配置“禁止”上传的文件的类型,而并非“允许”上传的类型,这样极容易忽略一些危险的扩展名。
在“9Cool九酷网络个人主页空间管理系统 v4.1 免费版”程序管理后台的“系统管理”-->“系统设置”页面中,有一个“系统基本参数设置”项,其中的“禁止上传的文件类型”用于设置禁止用户上传的文件类型,默认为“asp|php”。
在管理员定义了上传文件禁止的类型后,文件类型将会被作为“filetype”变量保存在数据库的“config”表中。
再看看控制文件上传的程序文件“upfile.asp”,在其中有如下代码段:
[cc lang="asp"]
iCount=0
for each formName in upload.objeile "列出所有上传了的文件
set file=upload.file(formName) "生成一个文件对象
types=lcase(mid(file.filename,InStrRev(file.filename,".")+1))
if filetype<>empty then
filtrate=split(filetype,"|")
for i=0 to ubound(filtrate)
if instr("|"&types"","|"&filtrate(i)"") > 0 then res
ponse.redirect "error.asp?error=filetype"
next
end if
[/code]
这段代码通过截取用户上传文件名后缀,搜索对比数据库中“filetype”定义的文件类型,从而判断用户上传的文件是否为禁止的文件。也就是说,如果用户上传的文件类型不在禁止列表中,那么就可以上传成功。
程序是否安全,很重要的一点保证就在于管理员定义的上传文件类型了,如果定义禁止上传的文件类型不周全,那么很有可能造成危险的后门程序被上传。默认的“asp|php”是远远不够的,因为危险的文件类型并不只有这两种。
五,危险的文件映射
打开某个网站的 IIS 服务管理员,用鼠标右键单击“默认网站”,在弹出菜单中选择“属性”命令,打开“默认网站属性”对话框。可以看到网站默认的程序映射有 asp、asa、cer、cdx等,这几种类型的程序文件,都被映射到“asp.dll”库文件上,按照 ASP 程序方式执行。由此可知,在默认配置的 IIS 网站服务器中,asp、asa、cer、cdx 等网页文件,都被当做 asp 程序执行,因此将 asp 木马后门改名为 asa、cer、cdx等后缀上传后,均可正常执行后门。
IIS 服务器默认执行的映射类型包括 asp、asa、cer、cdx等,而“9Cool九酷网络个人主页空间管理系统 v4.1 免费版”程序,仅禁止了 asp 和 php文件的上传,由此才产生了如此严重的文件上传漏洞,被攻击者轻易地控制整个网站服务器。