asp.net

位置:IT落伍者 >> asp.net >> 浏览文章

ASP.NET虚拟主机在显示文件时的隐患浅析


发布日期:2018年08月03日
 
ASP.NET虚拟主机在显示文件时的隐患浅析

ASPNET虚拟主机在显示文件时的隐患首先我们来看实例显示文件属性和内容的程序showfileaspx

在显示属性和内容时需要用到的两个主要的类

SystemIOFileInfo提供创建复制删除移动和打开文件的实例方法并且帮助创建 FileStream 对象

SystemIOStreamReader实现一个 TextReader使其以一种特定的编码从字节流中读取字符除非另外指定StreamReader的默认编码为 UTF而不是当前系统的 ANSI 代码页UTF 可以正确处理 Unicode 字符并在操作系统的本地化版本上提供一致的结果

ASPNET虚拟主机在显示文件之Showfileaspx页面主要代码

﹤asp:Label id=FileDetail runat=server/﹥ 我们只是将文件的属性信息和部分内容显示在此Label上所以没有其他复杂的代码

获取文件信息和内容的主要代码都在Page_Load方法中(代码在showfileaspxcs文件中)

//接收传入的参数确定需要操作的文件名称

strFileShow = RequestQueryString[file];

//根据文件名实例化一个FileInfo对象

FileInfo fi = new FileInfo(strFileShow);

FileDetailText = 文件名;

FileDetailText += strFileShow+﹤br﹥;

FileDetailText += 文件大小;

//获得文件的大小然后变换单位为KB

FileDetailText += (fiLength/)ToString()+K﹤br﹥;

FileDetailText += 创建文件时间;

//获得文件的创建日期

FileDetailText += fiCreationTimeToString();

FileDetailText += 上次访问时间;

//获得文件的上次访问日期

FileDetailText += fiLastAccessTimeToString()+﹤br﹥;

FileDetailText += 上次写入时间;

//获得文件的上次写入日期

FileDetailText += fiLastWriteTimeToString()+﹤br﹥;

//实例化一个StreamReader对象用于读取此FileInfo的内容

StreamReader FileReader = fiOpenText();

//定义一个长度为的字符数组作为缓沖区

char[] theBuffer = new char[];

/*ReadBlock方法从当前流中读取最大数量的字符并从索引开始将该数据写入缓沖区

参数 char[] buffer方法返回时包含指定的字符数组

int indexbuffer 中开始写入的位置

int count最多读取的字符数

*/ int nRead = FileReaderReadBlock(theBuffer);

FileDetailText += new String(theBuffernRead);

//关闭此 StreamReader 并释放与之关联的所有系统资源

FileReaderClose();

到目前为止我们实现了一个简单的web页面的服务器磁盘管理应用程序可以查看删除目录和文件如果需要修改文件新建文件和文件夹等功能只需稍作修改添加上相应的代码就可以由于我们只是通过这个程序说明服务器中存在的安全隐患所以在这里就不再实现这些功能了

通过这三个简单的程序我想大家已经能够清楚的认识到ASPNET虚拟主机的隐患漏洞的危害性了如果我们不加防范的话其他用户的程序就能被恶意使用此功能的用户查看删除服务器的系统日志系统文件也没有任何安全可言了

ASPNET虚拟主机在显示文件时的隐患就介绍到这里也是对ASPNET虚拟主机的隐患做一下了解希望对你有所帮助

               

上一篇:FlyTreeView for ASP.NET 3.2 破解攻略(2)

下一篇:编写ASP.NET应用程序的十大技巧