ASP.NET的安全隐患—文件操作

博客指出.NET的文件操作存在巨大安全隐患,通过写几个文件传到虚拟主机上,可看到主机文件,还能进行删除等操作,同时列出了相关文件如getit.aspx.cs等,并给出了转载链接。

.net的文件操作存在巨大的安全隐患,写了几个文件传到虚拟主机上,不但可以看到主机上的文件,甚至还可以进行删除等一系列的文件操作
得的驱动器目录

getit.aspx.cs

None.gif            string[] drivers=Directory.GetLogicalDrives();
None.gif            
int NumOfDriver=drivers.Length;
None.gif            
for(int i=0;i<NumOfDriver;i++)
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif{
InBlock.gif                Response.Write(
"<a href=listdir.aspx?dir=" + Server.UrlEncode(drivers[i]) + ">" + drivers[i] + "</a><br>");
ExpandedBlockEnd.gif            }

listdir.aspx.cs获得文件

None.gifstring strDir=Request.QueryString.Get("dir");
None.gif            
try
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif{
InBlock.gif                DirectoryInfo theDir
=new DirectoryInfo(strDir);
InBlock.gif                Response.Write(strDir 
+ "  建立时间:" + theDir.CreationTime.ToString() + "<br>");
InBlock.gif                
//获得子目录
InBlock.gif
                DirectoryInfo[] subDir=theDir.GetDirectories();
InBlock.gif                Response.Write(
"文件夹");
InBlock.gif                
for(int i=0;i<subDir.Length;i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    Response.Write(
"<br><a href=listdir.aspx?dir=" + Server.UrlEncode(subDir[i].FullName) + ">" + subDir[i].FullName  + "</a>");
ExpandedSubBlockEnd.gif                }

InBlock.gif                Response.Write(
"<br>");
InBlock.gif                
//获得文件
InBlock.gif
                Response.Write("文件");
InBlock.gif                FileInfo[] theFiles
=theDir.GetFiles();
InBlock.gif                
for(int i=0;i<theFiles.Length;i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    Response.Write(
"<br><a href=showfile.aspx?file=" + Server.UrlEncode(theFiles[i].FullName) + ">" +theFiles[i].FullName + "</a>");
InBlock.gif                    Response.Write(
"&nbsp;&nbsp;<a href=delfile.aspx?file=" + Server.UrlEncode(theFiles[i].FullName) + ">删除</a>");
ExpandedSubBlockEnd.gif                }

ExpandedBlockEnd.gif            }

None.gif            
catch(Exception ex)
ExpandedBlockStart.gifContractedBlock.gif            
dot.gif{
InBlock.gif                Response.Write(ex.ToString());
ExpandedBlockEnd.gif            }


showfile.aspx.cs读取文件信息

None.gif            string strFile=Request.QueryString.Get("file");
None.gif            FileInfo file
=new FileInfo(strFile);
None.gif            Response.Write(
"<br>");
None.gif            Response.Write(
"<br>名称:" + file.Name);
None.gif            Response.Write(
"<br>路径:" + file.FullName);
None.gif            Response.Write(
"<br>当前目录:" + file.Directory);
None.gif            Response.Write(
"<br>建立时间:" + file.CreationTime.ToString());
None.gif            Response.Write(
"<br>大小:" + file.Length.ToString() + "Bytes");
None.gif            Response.Write(
"<br>上次访问时间:" + file.LastAccessTime.ToString());
None.gif            Response.Write(
"<br>上次修改时间:" + file.LastWriteTime.ToString());
None.gif            Response.Write(
"<br>");
None.gif            Response.Write(
"Open with text(读取一定数量字符)" + "<br>");
None.gif
None.gif            StreamReader reader
=file.OpenText();
None.gif            
char[] buffer=new char[255];
None.gif            
int nRead=reader.ReadBlock(buffer,0,255);
None.gif            Response.Write(
"<pre>");
None.gif            Response.Write(Server.HtmlEncode(
new String(buffer,0,nRead)));
None.gif            Response.Write(
"</pre>");

 

 

转载于:https://www.cnblogs.com/higou/archive/2004/08/28/37209.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值