2006-11-18

Web实战之四:保护Web服务器数据库

来源: IT168 作者:佚名 评论 0 条
  随着互联网络的飞速发展,各种各样的大小网站不断涌现,其中,动态的网站以其实用性、多样性占据了绝对的优势。在动态网站中,站长多是以ASP、PHP和JSP脚本为系统架设的。尤其是ASP系统,因其易用性、兼容性等特点而深受站长们的青睐。

架设ASP的Web服务器通常是“IIS ASP ACCESS”的组合,正是因为这种组合的普遍性,由此引发的安全问题得到越来越多的网管们的眼球。

这里介绍一种方法,通过保护web服务器数据库来消除安全隐患。

安全威胁

◆技术背景

一般情况下,基于ASP构建的网站程序和论坛的数据库的扩展名默认为.mdb,这是很危险的。

入侵者只要猜测出数据库文件的位置,然后在浏览器的地址栏里面输入它的URL,就可以轻易地下载文件。就算我们对数据库加上了密码,并且里面治理员的密码也被MD5加密,被下载到本地以后也很轻易被破解。究竟,目前MD5已经可以通过暴力来破解了。

因此,只要数据库被下载了,那么它就没有丝毫安全性可言。

◆攻击方法

通常情况下,要想知道数据库文件的位置,除了猜测之外,还有一种暴库的方法,就是把站点URL的最后一个“/”改为%5C就能暴出站点数据库。

例如,把:http://sample.com/support/detail.asp?id=l 替换为:http://sample.com/support%5Cdetail.asp?id=l

假如服务器存在安全漏洞,浏览器就会报错:

Microsoft JET Database Engine(Ox8OOO4OO5)
‘E:\webroot\asproot\db\webdb.mdb’不是一个有效的路径,确定路径名称拼写是否正确,以及是否连接刭文件存放的服务器。

/support/ConnectDB.asp,第5行
通过上述错误提示,入侵者就可以轻松地判定出数据库的位置,只需要在浏览器中输入http://sample.com/support/db/webdb.mdb,就可以轻松下载该网站的数据库。

◆威胁防治

为什么把站点URL的最后一个“/”改为%5C就能暴出站点数据库呢?要明白这一点,首先要知道%5C代表的是什么。%5C其实就是16进制代码中的“\”,但假如我们直接在浏览器中提交“\”,IE会自动把“\”转换为“/”,而提交“%5C”是不会被转换的。

为什么碰到“\”就能暴出数据库呢?因为使用“\”会产生绝对路径错误,使IIS报错,这个报错信息就泄露了站点数据库的位置。恶意攻击者就可以凭此猜测数据库的位置和名称、%5C暴库甚至下载数据库。

那么,我们该如何防止这类事情发生呢?

(1)防止入侵者通过简单的猜测而得到数据库的位置。可以把数据库存入深层目录下,取复杂的数据库名称。例如:webroot/mulu1/mulu2/mulu3/rbx9xu5.mdb。

(2)防止入侵者使用%5C暴库。

◆配置IIS服务器,使其不显示暴库的错误信息。处理该错误的HTTP错误编号是500,子错误代码:100。新建一个Error.htm,使错误处理指向该网页。

◆在数据库连接文件中添加容错语句。

例如:下面的connect.asp连接数据库文件,在第一行添加容错语句。假如程序执行出
现错误,就会自动跳过去执行,不会提示错误信息,暴出数据库的位置。
<%
On error resume next’添加这行容错语句,就不会暴出数据库的位置了。
set conn=server.createobject(“adodb.Connection”)
CS=“Provider=Microsoft.jet.OLEDB.4.0;Data Source=”
conn.ConnectionString=CS&Sever.MapPath(“db/netcenter.asp”)
Conn.open
%>
共2页: 上一页 1 [2] 下一页

(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:Photoshop绘制一个古色古香的画面  
下一篇:Web实战之五:服务器安全访问控制
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号