当前位置: 首页 > 图文教程 > 数据库 > MSSQL > 数据库下载漏洞攻击技术

MSSQL
如何设置SQL Server数据库全文索引服务
使用SQL Server 2000索引视图提高性能
Sql Server在安装时提示挂起的解决方法
解析SQL Server 2008中的新语句:MERGE
使用SQL Server时最容易忽略的21个问题
讲解SQL Server数据库的触发器安全隐患
轻松掌握执行一个安全的SQL Server安装
如何使用SQL Server中的客户端配置工具
从SQL Server2000升级到2005的过程解析
Sql Server 数据库超时问题的解决方法
解决SQLServer最大流水号的两个好方法
解析:轻松掌握在 Mac OS X中安装MySQL
细化解析:轻松掌握怎样测试 MySQL安装
细化解析:MySQL 服务器究竟有多稳定?
MySQL数据库中与 ALTER TABLE 有关的问题
细化解析:MySQL 数据库中对XA事务的限制
使用MySql和php出现中文乱码的解决方法
Mysql的最大连接数怎样用java程序测试
MySQL列类型的选择与MySQL的查询效率
教你精确编写高质量高性能的MySQL语法

MSSQL 中的 数据库下载漏洞攻击技术


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 122 ::
收藏到网摘: n/a

 

  作为脚本漏洞的头号杀手锏——数据库下载漏洞,现在已经被越来越多的人所熟知。在这个信息化技术更新飞快的时代,漏洞产生后随之而来的就是各种应对的招数,比如改数据库的后缀、修改数据库的名字等等。很多人以为只要这么做就可以解决问题了,但事实往往不如你我所愿,即使你这么做了也难逃被高手攻击的命运。为此我们有必要去了解一些攻击的手法,来增强自己的安全技能。

  1.强制下载后缀名为ASP、ASA的数据库文件

  大多数的网管为了节省时间,网站上的文章系统、论坛等程序都是直接下载别人的源程序再经过部分修改后使用的。而现在很多人做的ASP源程序都已经将数据库的后缀由原先的MDB改为了ASP或ASA。本来这是好事,但在这个信息极度膨胀的社会,老的方法所能维持的时间毕竟有限。对于ASP或ASA后缀的数据库文件,黑客只要知道它们的存放位置,就能轻易地用迅雷这样的下载软件下载得到。图1即笔者利用迅雷下载到的数据库文件(注意数据库的后缀为ASP)。



图 1

  2.致命符号——#

  很多网管以为在数据库前面加个#号就可以防止数据库被下载。是啊,我当时也认为IE是无法下载带有#号的文件的(IE会自动忽略#号后面的内容)。但是“成也萧何,败也萧何”,我们忘记了网页不仅能通过普通的方法访问,而且用IE的编码技术也能访问到。

  在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替代就可以暴到数据库的位置,接下来的事情应该不需要我说了吧?大家只要开动脑筋没有什么事情是做不成的。

 "