求教一个FSO程序与虚拟主机IIS安全性的问题

为了方便管理自己机器IIS根目录下面的数十个文件夹,我做了一个很简陋的索引页面。全部代码如下:(不算长,而且多数是html的格式控制)

/////////////////index.asp////////////////////

1@language=JavaScript
 1   
 2//////IIS 根目录文件索引//////   
 3if(Request("act")=="delfile")   
 4{   
 5var objFSO = Server.CreateObject("Scripting.FileSystemObject");   
 6var filePath=Request("path")+"";   
 7if(objFSO.FileExists(filePath))   
 8{   
 9objFSO.DeleteFile(filePath);   
10Response.write("文件 "+filePath+" 已经在服务器上删除...");   
11Response.end;   
12}   
13else   
14{   
15Response.Write("文件 "+filePath+" 在服务器上不存在...");   
16Response.end;   
17}   
18}   
19  
20//---------目录及子目录名确定---------   
21var thePath="";   
22thePath+=Request("path");   
23thePath=(thePath=="undefined"?"":thePath);   
24  
25//---------定义FSO对象并获取当前目录---------   
26var objFSO = Server.CreateObject("Scripting.FileSystemObject");   
27var rootFolder=objFSO.GetFolder(Server.MapPath(thePath+"\\\")); //关键在这里   
28  
29//---------取得当前目录下子目录信息,在后面输出列表----------   
30var d_Folders=rootFolder.SubFolders;   
31var a_Folders=new Enumerator(d_Folders);   
32  
33//---------取得当前目录下文件信息,在后面输出列表----------   
34var d_Files=rootFolder.Files;   
35var a_Files=new Enumerator(d_Files);   
 1<style>   
 2body {   
 3font-family: "宋体"; font-size: 12px; line-height: 16px;   
 4margin: 0px;   
 5SCROLLBAR-FACE-COLOR: #0753C6;   
 6SCROLLBAR-HIGHLIGHT-COLOR: #8CB9FB;   
 7SCROLLBAR-SHADOW-COLOR: #000000;   
 8SCROLLBAR-3DLIGHT-COLOR: #445555;   
 9SCROLLBAR-ARROW-COLOR: #ffffff;   
10SCROLLBAR-TRACK-COLOR: #A4BDE3;   
11SCROLLBAR-DARKSHADOW-COLOR: #555555   
12}   
13A { font-size:12px;font-weight:normal;font-style:normal;color:#CCCCCC;text-decoration:none;}   
14A:Hover{ font-size:12px;font-weight:normal;font-style:normal;color:#FF0000;text-decoration:underline;}   
15  
16table { font-family: "宋体"; font-size: 12px;word-break:break-all;line-height: 16px}   
17.shadowText {FILTER: DropShadow(Color=#cccccc, OffX=1, OffY=1, Positive=1)}   
18</style>
 1<body bgcolor="#6699CC" text="#000000">
 2<table align="center" border="0" cellpadding="0" cellspacing="0" width="60%">
 3<tr>
 4<td colspan="4" height="50">
 5<div align="center"><b>IIS Localhost 文件索引</b></div>
 6<hr noshade="" size="1"/>
 7</td>
 8</tr>
 9<tr>
10<td class="shadowText" colspan="2" height="20">·该目录下的文件夹列表</td>
11<td width="30%"> </td>
12<td> </td>
13</tr>   

for (; !a_Folders.atEnd(); a_Folders.moveNext()){

 1<tr>
 2<td colspan="2" height="20"> ```
 3=a_Folders.item().Name
 4```</td>
 5<td width="30%">
 6<div align="center"><a =thepath+"\\\"+a_folders.item().name="" ```="" href="?path=```">查看索引</a></div>
 7</td>
 8<td>
 9<div align="center"><a =thepath+"\\\"+a_folders.item().name="" ```="" href="```">进入目录</a></div>
10</td>
11</tr>   

}

 1<tr>
 2<td colspan="4">
 3<hr noshade="" size="1" width="96%"/>
 4</td>
 5</tr>
 6<tr>
 7<td class="shadowText" colspan="2" height="20">·该目录下的文件列表</td>
 8<td class="shadowText" width="30%">
 9<div align="center">最后更新时间</div>
10</td>
11<td class="shadowText">
12<div align="center">文件大小(Bytes)</div>
13</td>
14</tr>   

for (; !a_Files.atEnd(); a_Files.moveNext()){

 1<tr>
 2<td height="20" width="40%"> ```
 3=a_Files.item().Name
 4```</td>
 5<td height="20" width="10%">
 6<div align="center">[<a href="?act=delfile&amp;path=```
 7=a_Files.item().Path
 8```">删除</a>]</div>
 9</td>
10<td width="30%">
11<div align="center">```
12=a_Files.item().DateLastModified
13```</div>
14</td>
15<td>
16<div align="center">```
17=a_Files.item().Size
18```</div>
19</td>
20</tr>   

}
delete objFSO;

 1<tr>
 2<td colspan="2" height="50"> </td>
 3</tr>
 4</table>   
 5  
 6///////////////////文件结束////////////////////   
 7  
 8当我将这个文件上传到自己的空间并运行之后,发现竟然可以看到我的空间那台服务器的所有用户的文档(也就是IIS根目录下面所有文档),并且我用自己和另一位同学的空间试过,都可以由FSO删除任何文件。这样就意味这只需要这样一个简单至极的程序就可以盗用、修改甚至删除他人的文件……   
 9我孤陋寡闻,我不知道大家使用的空间和主机是否也这样不安全,也不知道这个问题是否一个严重的问题,更不知道如何在服务器应该如何设定才能解决这个问题。   
10请大家指教一个解决方案,我会和自己的空间服务商联系,请他改进。   
11如果有朋友感兴趣,也不妨试试自己的空间,如果也不安全就想想办法吧,也不要去破坏别人的东西,创建比破坏似乎更有趣一些。   
12我没有系统地学过asp,如果这个问题很幼稚,大家见笑了。   
13\---------------------------------------------------------------   
14  
15http://www.aspsky.net/article/show.aspx?id=2736   
16\---------------------------------------------------------------   
17  
18能删除文件,是因为你的用户权限有问题   
19你的iusr_XX除了读取,运行外,不应该有多余的权限   
20\---------------------------------------------------------------   
21  
22好好设置一下服务器的权限如果有上传的地方一般用户最好只要有写入权限最好不要给修改和删除权限其它目录也一样如果不需要写入东西或上传东西就只给读取权限   
23如果觉得这样还不安全可以用拒绝权限更保险   
24如果整个系统权限设置好了通过web方法再好的黑客也攻不破   
25除非有windows漏洞!</body>
Published At
Categories with Web编程
Tagged with
comments powered by Disqus