/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
%>
评论加载中…
![]() |