找回密码
 注册
搜索
热搜: 回贴

7.5 ASP (IIS)的漏洞及防范措施(1)

2010-1-12 20:27| 发布者: admin| 查看: 579| 评论: 0|原作者: 心然

7.5 ASP (IIS)的漏洞及防范措施(1)
1. 在ASP程序名后加个特殊符号,能看到ASP源程序
受影响的版本: win95 pws 、IIS3.0
问题描述:
这些特殊符号包括小数点, ::$DATA。比如:http:// someurl/somepage.asp 可以看到somepage.asp的文件内容。
那么在安装有IIS3.0和win95 PWS的浏览器中就很容易看到somepage.asp的源程序。究竟是什么原因造成了这种可怕的漏洞呢?究其根源其实是Windows NT 特有的文件系统在做怪。有一点相关常识的人都知道在Windows NT 提供了一种完全不同于FAT的文件系统:NTFS。这种被称之为新技术文件系统的技术使得 Windows NT 具有了较高的安全机制,但也正是因为它而产生了不少令人头痛的隐患。大家可能不知道,NTFS包含了所有内容的主数据流被称之为“DATA”,因此使得通过问 NTFS 系统的这个特性而轻易的捕获在文件中的脚本程序成为了可能。然而直接导致 “::$DATA”的原因是由于 IIS 在解析文件名的时候出了问题,它没有很好地规范文件名。
防范措施:
如果是Winodws NT用户,安装IIS4.0或者IIS5.0,Windows2000不存在这个问题;如果是win95用户,安装WIN98和PWS4.0。
2 . ACCESS mdb 数据库有可能被下载的漏洞
漏洞描述:
在用 ACCESS 做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的 ACCESS 数据库的路径和数据库名称,那么他能够下载这个 ACCESS 数据库文件,这是非常危险的。 如果你的数据库没有事先加密的话,那么其中所有重要的数据都将掌握在别人的手中。
防范措施:
(1)为你的数据库文件名称起个复杂的“非常规”的名字,并把他放在几目录下。打个比方:比如有个数据库要保存的是有关书籍的信息,可不能按照意思起个“book.mdb”的名字,为了安全,应该起个怪怪的名称,比如d34ksfslf.mdb,再把他放在如./kdslf/i44/studi/ 的几层目录下,这样黑客要想通过猜的方式得到你的ACCESS数据库文件就难上加难了。
(2)不要把数据库名写在程序中。有些人喜欢把DSN写在程序中,比如:
DBPath = Server.MapPath("cmddb.mdb")

conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPath
万一被别人拿到了源程序,你的 ACCESS 数据库的名字就一览无余。因此建议你在 ODBC 里设置数据源,再在程序中这样写:
conn.open "shujiyuan"
(3)使用ACCESS来为数据库文件编码及加密。打开ACCESS程序,首先在选取【工具】→【安全】→【加密/解密数据库】,再选取数据库(如:employer.mdb),然后按【确定】按钮,接着会出现【数据库加密后另存为】的窗口,可以存为:employer1.mdb。这样接下来 employer.mdb 就会被编码,然后存为employer1.mdb。
要注意的是,以上的操作并不是对数据库设置密码,而只是对数据库文件加以编码,目的是为了防止他人使用别的工具来查看数据库文件的内容。
接下来我们为数据库加密,首先以打开经过编码了的 employer1.mdb,在打开时,选择“独占”方式。
然后选取功能表的【工具】→【安全】→【设置数据库密码】,接着输入密码即可。
为employer1.mdb设置密码之后,接下来如果再使用ACCEES数据库文件时,则ACCESS会先要求输入密码,验证正确后才能够启动数据库。加上口令以后,调用数据库时就要在ASP程序中的connection对象的open方法中增加pwd的参数了,例如:
param="driver={Microsoft Access Driver (*.mdb)};Pwd=yfdsfs"

param=param&";dbq="&server.mappath("employer1.mdb")

conn.open param

这样即使他人得到了employer1.mdb文件,没有密码是无法察看employer1.mdb的内容的。
3. code.asp文件会泄漏ASP代码
问题描述:
举个很简单的例子,在微软提供的 ASP1.0 的例程里有一个“.asp”文件,专门用来查看其他“.asp”文件的源代码,该文件为ASPSamp/Samples/code.asp。 如果有人把这个程序上传到服务器,而服务器端没有任何防范措施的话,他就可以通过这个程序很容易地查看他人的程序代码了。例如 :
code.asp?source=/directory/file.asp
不过这是个比较旧的漏洞了,相信现在很少会出现这种漏洞。但下面这个命令是比较新的:
http://someurl/iissamples/exair/howitworks/code.asp?/lunwen/soushuo.asp=xxx.asp
这个代码最大的危害莫过于asa文件可以被上述方式读出;数据库密码以明文形式暴露在黑客眼前;
防范措施:
对于IIS自带的show asp code的asp程序文件,删除该文件或者禁止访问该目录即可。
4 . filesystemobject组件篡改下载FAT分区上的任何文件的漏洞
问题描述:
IIS3、 IIS4 的 ASP 的文件操作都可以通过 filesystemobject 实现,包括文本文件的读写目录操作、文件的拷贝改名删除等,但是这个强大的功能也留下了非常危险的“后门”。利用filesystemobjet可以篡改下载FAT分区上的任何文件。即使是NTFS分区,如果权限没有设定好的话,同样也可能被破坏,一不小心你的数据就可能遭受“灭顶之灾”。遗憾的是很多 webmaster 只知道让 web 服务器运行起来,很少对 NTFS 进行权限设置,而Windows NT目录权限的默认设置偏偏又是安全性很低。
防范措施:
如果你是WEBmaster,建议你密切关注服务器的设置,尽量将 web 目录建在NTFS分区上,目录不要设定everyone full control,即使是管理员组的成员一般也没什么必要full control,只要有读取、更改权限就足够了。另外,也可以把filesystemobject的组件删除或者改名。


最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-29 09:29 , Processed in 0.088807 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部