ASP漏洞分析和解决方法

来源:CSDN 时间:2008-10-30 13:35:00 

有人说一台不和外面联系的电脑是最安全的电脑,一个关闭所有端口,不提供任何服务的电脑也是最安全的。黑客经常利用我们所开放的端口实施攻击,这些攻击最常见的是DDOS(拒绝服务攻击).

下面我会列出ASP的二十几个漏洞,每个漏洞都会有漏洞描述和解决方法。

1 在ASP程序后加个特殊符号,能看到ASP源程序

  受影响的版本:
  win95+pws
  IIS3.0
  98+pws4 不存在这个漏洞。
  IIS4.0以上的版本也不存在这个漏洞。
  问题描述:
  这些特殊符号包括小数点,%81, ::$DATA。比如:
http://someurl/somepage.asp.
http:// someurl/somepage.asp%81
http:// someurl/somepage.asp::$DATA
http:// someurl/somepage.asp %2e
http:// someurl/somepage %2e%41sp
http:// someurl/somepage%2e%asp
http:// someurl/somepage.asp %2e
http://someurl/msadc/samples/selector/showcode.asp?source=/msadc/samples/../../../../../../boot.ini (可以
看到boot.ini的文件内容)
  那么在安装有IIS3.0和win95+PWS的浏览中就很容易看到somepage.asp的源程序。究竟是什么原因造成了这种可怕的漏洞呢?

究其根源其实是 Windows NT 特有的文件系统在做怪。有一点常识的人都知道在 NT 提供了一种完全不同于 FAT 的文件系统:

NTFS,这种被称之为新技术文件系统的技术使得 NT 具有了较高的安全机制,但也正是因为它而产生了不少令人头痛的隐患。大家可能不知道, NTFS 支持包含在一个文件中 的多数据流,而这个包含了所有内容的主数据流被称之为"DATA",因此使得在浏览器里直接访问 NTFS 系统的这个特性而轻易的捕获在文件中的脚本程序成为了可能。然而 直接导致 ::$DATA的原因是由于 IIS 在
解析文件名的时候出了问题,它没有很好地规范文件名。

  解决方法和建议:

如果是Winodws NT用户,安装IIS4.0或者IIS5.0,Windows2000不存在这个问题。如果是win95用户,安装WIN98和PWS4.0。

2 ACCESS mdb 数据库有可能被下载的漏洞

  问题描述:

在用ACCESS做后台数据库时,如果有人通过各种方法知道或者猜到了服务器的ACCESS数据库的路径和数据库名称,那么他能够下载这个ACCESS数据库文件,这是非常危险的。比如:如果你的ACCESS数据库book.mdb放在虚拟目录下的database目录下,那么有人在浏览器中打入:
http:// someurl/database/book.mdb 如果你的book.mdb数据库没有事先加密的话,那book.mdb中所有重要的数据都掌握在别人的手中。

  解决方法:

(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来为数据库文件编码及加密。首先在选取"工具->安全->加密/解密数据库,选取数据库(如: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的。

标签:漏洞,iis,数据库,asp
0
投稿

猜你喜欢

  • 网站被搜索引擎降权原因分析

    2008-05-25 18:10:00
  • 五个实用的WordPress数据库技巧

    2010-03-23 15:16:00
  • 论坛Discuz! 7.0升级到Discuz! 7.2图文教程

    2010-03-17 14:18:00
  • Linux 服务器的远程控制技术及实战

    2008-11-03 12:37:00
  • 网易梦幻人生开始封闭测试 对用户进行细分

    2009-11-17 08:21:00
  • Fishman的创业经验分享

    2007-09-08 08:19:00
  • Godaddy Linux主机帐户的免费软件有哪些

    2010-04-14 12:40:00
  • 服务器架站应用:打造安全mdb数据库

    2008-03-18 12:01:00
  • IT网站将回到内容为王时代

    2008-08-02 12:05:00
  • 也许你会忽视:分析网站设计的10个坏习惯

    2009-01-04 09:23:00
  • 天涯推企业空间及ADTOP广告系统 促进规模盈利

    2009-11-27 17:01:00
  • 十分钟快速架设Linux系统下WebMail

    2010-03-12 18:47:00
  • 半年站长经验取得日赚百元成就

    2008-05-03 16:15:00
  • VMware虚拟机三种联网方法及原理(小结)

    2023-10-08 17:38:49
  • 适用Foxmail Server轻松搭建邮件服务器

    2010-03-08 18:38:00
  • Apache使用.htaccess 屏蔽恶意 User Agent(防蜘蛛)

    2023-07-19 06:51:49
  • Docker容器之间数据传输的实现

    2021-02-21 05:30:34
  • 解决nginx/apache静态资源跨域访问问题详解

    2023-08-22 08:07:06
  • Linux中samba服务器的基本配置

    2010-08-17 18:22:00
  • 记一次Ubuntu服务器被黑经历

    2023-08-28 23:38:20
  • asp之家 网站运营 m.aspxhome.com