数据库下载攻击技术

  作为脚本漏洞的头号杀手锏——数据库下载漏洞,现在已经被越来越多的人所熟知。在这个信息化技术更新飞快的时代,漏洞产生后随之而来的就是各种应对的招数,比如改数据库的后缀、修改数据库的名字等等。很多人以为只要这么做就可以解决问题了,但事实往往不如你我所愿,即使你这么做了也难逃被高手攻击的命运。为此我们有必要去了解一些攻击的手法,来增强自己的安全技能。
1.强制下载后缀名为ASP、ASA的数据库文件
  大多数的网管为了节省时间,网站上的文章系统、论坛等程序都是直接下载别人的源程序再经过部分修改后使用的。而现在很多人做的ASP源程序都已经将数据库的后缀由原先的MDB改为了ASP或ASA。本来这是好事,但在这个信息极度膨胀的社会,老的方法所能维持的时间毕竟有限。对于ASP或ASA后缀的数据库文件,黑客只要知道它们的存放位置,就能轻易地用迅雷这样的下载软件下载得到。图1即笔者利用迅雷下载到的数据库文件(注意数据库的后缀为ASP)。


 

图1
2.致命符号——#
  很多网管以为在数据库前面加个#号就可以防止数据库被下载。是啊,我当时也认为IE是无法下载带有#号的文件的(IE会自动忽略#号后面的内容)。但是“成也萧何,败也萧何”,我们忘记了网页不仅能通过普通的方法访问,而且用IE的编码技术也能访问到。WwW.itcOMPUTer.cOm.CN
  在IE中,每个字符都对应着一个编码,编码符%23就可以替代#号。这样对于一个只是修改了后缀并加上了#号的数据库文件我们依然可以下载。比如#data.mdb为我们要下载的文件,我们只要在浏览器中输入%23data.mdb就可以利用IE下载该数据库文件,这样一来,#号防御手段就形同虚设一般(图2)。


 

图2
3.破解Access加密数据库易如反掌
  有些网管喜欢对Access数据库进行加密,以为这样一来就算黑客得到了数据库也需要密码才能打开。但事实正好相反,由于Access的加密算法太脆弱,所以黑客只要随便到网上找一个破解Access数据库密码的软件,不用几秒钟就能得到密码。这样的软件网上有很多,比如Accesskey。
4.瞬杀——数据暴库技术
  本身数据库暴库技术应该是属于脚本漏洞的行列,之所以拿到这里来说是因为它在数据库下载漏洞中起到了举足轻重的作用,如果仔细一点,读者会发现上面的技巧都是假定知道数据库名的情况下才能实施的。但很多时候我们根本不可能知道数据库的名字,这时我们可能会感到很沮丧,觉得无法再进行下去,但数据库暴库技术的出现不仅可以一扫我们的沮丧情绪,也能让我们真正地将前面的技术综合起来利用。
  很多人在用ASP写数据连接文件时,总会这么写(conn.asp):
  ……
  db="data/rds_dbd32rfd213fg.mdb"
  Set conn = Server.CreateObject("ADODB.Connection")
  connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(db)
  conn.Open connstr
  function CloseDatabase
  Conn.close
  Set conn = Nothing
  ……
  这段语句看上去觉得并没什么问题,而且数据库的名字取得很怪,如果没有数据库暴库技术我们能猜到这样的数据库名的几率几乎为零。但就是这么简短的语句却隐藏着无限的信息。可以说网上绝大部分的程序都存在这个漏洞。我们只要将地址栏上在数据连接文件conn.asp(一般为这个)前的/用%5c替代就可以暴到数据库的位置,接下来的事情应该不需要我说了吧?大家只要开动脑筋没有什么事情是做不成的。

 
如何防止数据库被下载  以前大家在使用ASP+Access的系统时,为了防范数据库被他人非法下载,一般都是把数据库的MDB后缀名改为ASP等。但这样做其实已经为黑客打开了WebShell的大门。黑客可以通过在数据库中加入一段“一句话木马”的代码,然后直接在本地浏览器中提交ASP后缀的数据库,就可以得到我们网站的WebShell。www.sq120.com推荐

  我们知道在IIS5中提交一个没有定义的后缀名文件,服务器会直接将文件内容不加处理地返回给客户端;而在IIS6中,服务器不会把文件原封不动地返回客户端,而是显示出404错误。正是由于这一点,我们就可以将数据库的后缀名改为一个没有定义的后缀名,这样黑客暴出我们的数据库文件后,在访问数据库时就会提示该页不存在,这样就不怕数据库被别人下载了。  
快速移植DHCP服务数据库   随着局域网客户机的不断增多,原有的DHCP服务器不能满足局域网的需要。更换新的DHCP服务器算是一种比较好的解决办法,但需要重新配置新的DHCP服务器,工作量极大。针对这一情况,小胖打算将原来的DHCP服务器数据库移植到新的DHCP服务器中,这样可以减轻配置新DHCP服务器时的工作量,不用重新配置IP地址段和某些特殊的DHCP设置。
  不同Windows服务器平台的DHCP服务器之间的数据库移植的方法也各不相同。有基于Windows Server 2003(简称Windows 2003)的DHCP服务器数据库移植方法,也有基于Windows 2000 Server和Windows 2003间的DHCP服务器数据库移植方法。现在,让我们来看看小胖是如何运用这些方法的。
1.Windows 2003间的移植
  如果要将一台Windows 2003系统的DHCP服务器中的数据库移植到另一台Windows 2003系统的DHCP服务器中,使用NETSH命令就能轻松完成。
  第一步:在原来的DHCP服务器中,进入“命令提示符”窗口,运行“netsh dhcp server export c:\dhcp.txt all”命令,将DHCP服务器中的数据库备份到C盘的“dhcp.txt”文件中。
  第二步:将“dhcp.txt”备份文件拷贝到新的DHCP服务器的c盘根目录下,在“命令提示符”窗口中运行“netsh dhcp server import c:\dhcp.txt all”命令即可完成DHCP服务器数据库的移植。
2.Windows 2000 Server和Windows 2003间的移植
  Windows 2000 Server和Windows 2003间的DHCP服务器数据库移植,必须借助工具“Dhcpexim.exe”(下载地址:http://www.microsoft.com/windows2000/techinfo/reskit/tools/new/dhcpexim-o.asp)来完成。
  第一步:在Windows 2000 Server中停止DHCP服务。
  第二步:压缩DHCP数据库。在Windows 2000 Server的“命令提示符”窗口中运行“cd %systemroot%\system32\dhcp”命令,进入DHCP数据库所在的目录,接着运行“jetpack dhcp.mdb temp.mdb”命令,完成对“dhcp.mdb”的压缩。
  第三步:导出DHCP数据库。运行“Dhcpexim.exe”,在欢迎对话框中选中“Export configuration…”,点击“OK”按钮,接着弹出保存导出文件对话框,为导出的文件指定路径并取名(如“dhcpdatabase.txt”),点击“保存”按钮。在导出的范围对话框中,选中“Disable the selected scopes on……”,点击“Export”按钮,完成导出操作。
  第四步:移植DHCP数据库。将dhcpdatabase.txt文件拷贝到Windows 2003服务器C盘根目录下,在“命令提示符”窗口中运行“netsh dhcp server import c:\dhcpdatabase.txt all”命令就可完成DHCP数据库的移植。