这个问题,我是几天前就发现的,但是觉得公布出来可能会对大家不利(被一些人利用),但是今天看到了有人发了一个帖在问:
在根目录被创建了一个子".asp"的目录
使用的版本是:FS4 SP4
今天连FTP时,发现根目录下多了个奇怪的目录,目录名为:“1618583AH0A.asp”,不知道是怎样把目录建在根目录下的。
既然用户可以在根目录下建文件夹,看来整站目录他都可以浏览并下载了。
空间用的是:中资源10用户 主机安全应该没问题。
同时发现“Userfiles”目录下有很多以“.asp”结尾的目录,创建这样的目录FS4竟然不检测一下,且发现用户上传功能问题多多,将有关这些文件都删除了。
其实这个是因为风讯的Filemanage.asp这个文件有bug.可以让用户建立带.asp之类的文件夹,大家应该知道,如果文件夹.asp的话,里面的所有文件都将安asp程序来执行,那么,我们把木马文件后辍改成.jpg上传到这个建立的文件夹,,就能正常执行.最终是拿下整个服务器.
使用该bug,可以在根目录建立用户编号相同的带.asp等的目录,
事实上这个方法可以在网站下任何地方建此类目录,并上传文件.这个bug出现在所有fs4的版本中(fs3等不知道,没用过),包括前两天发出来的一个Filemanage.asp文件.
最后给出一个解决方案:1.加入以下代码
Function NoPowerView()'返回文件管理页,防止恶意操作
Response.Redirect("FileManage.asp")
Response.End()
End Function
2.修改22-25行
if instr(str_ShowPath,Fs_User.UserNumber)=0 then
response.Write("警告:没有权限浏览此文件目录!")
response.end
end if
改成:
if instr(str_ShowPath,
"/" &G_USERFILES_DIR & "/" & Fs_User.UserNumber)=0 then'中上"/" &G_USERFILES_DIR & "/" & ,防止访问根目录
'response.Write("警告:没有权限浏览此文件目录!")
NoPowerView
response.end
end if
3.将27行
if p_FSO.FolderExists(Server.MapPath(str_ShowPath))=false then p_FSO.createfolder(Server.MapPath(str_ShowPath))
改成
if p_FSO.FolderExists(Server.MapPath("/" &G_USERFILES_DIR & "/" & Fs_User.UserNumber))=false then p_FSO.createfolder(Server.MapPath("/" &G_USERFILES_DIR & "/" & Fs_User.UserNumber))
if p_FSO.FolderExists(Server.MapPath(str_ShowPath))=false then NoPowerView