开源,数据库路径暴露的简单介绍
直接开发一套网站源程序是非常费时费力的,许多建站者出于节约目的的考虑,往往会直接购买或下载一些免费的网站文章系统、论坛等源程序,再经过部分修改后使用。
由于网站的源程序是公开的,因此网站的核心数据库配置连接文件及路径等也是可知的,如果网管没有对源程序中的数据库文件名和文件路径进行修改的话,往往会存在着数据库暴露的安全危险。
普通网站程序使用的数据库通常有两种:一种是使用小型数据库,如 Access,一般就存储在本地。另一种是使用大型数据库,如 SQL server、 MySQL、 oracle 等,这时数据库一般放在另一台服务器上,然后通过 ODBC 来访问数据库。
由于 Access 数据库文件的特殊性,导致 Access数据库可以通过浏览器或下载工具被直接下载。因此数据库暴露后带来的安全威胁是极大的,攻击者很有可能将数据库直接下载到本地打开,从中获取网站管理员密码等,入侵控制整个网站。
即使网管采取了一些防范措施,比如改数据库的后缀名、修改数据库的名字等,但是也有可能被黑客通过猜解的方式得到数据库地址,或者直接向数据库中插入危险的代码,进而控制整个网站。
解码问题,暴露出数据库
颇有安全意识的建站者,可能会对网站源程序进行修改,隐藏数据库文件名及路径,但是攻击者会想尽一切方法让网站的数据库信息暴露出来。由此诞生了许多数据库攻击技术,暴库漏洞攻击就是其中的一个。
在IIS 4.0的时代曾经出过一个用%5c遍历目录的漏洞,暴库漏洞攻击的原理与其非常相似。一般来说,在正常的 URL 网页链接地址中,将“/”改成 “%5c”,IIS经过二次解码后,还能够正确解释并找到网页文件。但是如果网页程序调用了数据库的话,经过解码后使用相对地址的数据库链接就会出现问题了,导致程序会报错。
如果网页程序采用的是 Access 数据库,且没有关闭客户端的返回错误信息,数据库连接文件里的数据库路径就会被当做出错信息显示在页面中。当攻击者知道数据的路径后,就可以下载数据库,获得网站的各种重要信息,包括网站管理员的帐号和密码之类的。