奇趣技术网 收藏本站
设为主页
商务合作
首页 新闻中心 行业动态 软件新闻 安全资讯 病毒预警 漏洞发布 操作系统 Dos Win9x Win2000 WinXP Win2003 WinVista Linux Unix
数据库 DB2 Access MSSQL MySQL Oracle Sybase 编程技术 ASP PHP JSP CGI/Perl XML .Net C/C++/C# VB VC Delphi Java 汇编
安全技术 安全教学 工具介绍 漏洞利用 病毒防范 入侵检测 防火墙 安全防范 汉化破解 攻击实例 加密解密 技术论坛
中华网络安全联盟 >> 数据库 >> Access >> Access数据库安全攻防策略
数据库
Access
SQL Server
MySQL
DB2
Oracle
Sybase
  • scsiaccess - scsiacc

  • msaccess - msaccess.

  • mediaaccess - mediaa

  • access - access.exe 

  • instantaccess - inst

  • access数据库跨文件查

  • Access的跨库查询

  • Sun Java System Acce

  • Access数据库安全攻防策略
    字体:

    中华网络安全联盟    作者:佚名    来源:网络转载    时间:2006-3-23



      攻略篇:  

      一、发挥你的想象力 修改数据库文件名,从理论上讲不一定能防止被下载.

       修改数据库名,其目的就是防止我们猜到数据库而被下载.

       但是万一我们猜到数据库名,就直接可以下载了.所以这不能保证100%不能被下载.

       猜解数据库的常用的办法就是写程序去猜解数据库名,判断WEB返回的是不是404错误,如果提交一个MDB文件,没有返回404错误,那就猜对了,就直接下载.

       当然这有一定的局限性,因为如果数据库名非常复杂,会产生大量的日志.管理员可能早 发现了.并且还有猜解的时间会变得很长.  

      二:数据库名后缀改为ASA、ASP等,不一定能防止被下载.

       IIS在通过asp.dll处理.asp扩展名文件的时候,对以外的内容,不做任何处理就直接输出,但是MDB文件中如果没有之类的ASP标实符,我们直接在IE中输入URL返回在IE中的数据,就是MDB文件的数据,我们直接用FLASHGET之类的软件就可以下载,下载后改名这后就可以用了.
      
      如图1:  

      三: 数据库名前加“#”,一定能防止被下载.  

      有些人误认为:

      "只需要把数据库文件前名加上#、然后修改数据库连接文件(如conn.asp)中的数据库地址。原理是下载的时候只能识别 #号前名的部分,对于后面的自动去掉."  

      这样是比较安全的.这只是对于一般的人无法下载.因为他们不知道,也没有去了解有关IE编码的技术.在编码中我们用%23来代替#号.所以我们如果有一个数据库是:

      http://www.xxx.com/data/#datapro.mdb

      我们直接在IE中输入:

      http://www.xxx.com/data/%23datapro.mdb

      就可以下载了.

      如图2:

      四:加密数据库,下载后,2秒钟码解出数据库密码.

      有些人认为,把ACCESS数据库进行加密,就算得到数据库他也没有办法得到里面的任何信息.这是一种错解.Access数据库的加密机制是非常脆弱的.加密后数据库系统通过将用户输入的密码与某一固定密钥进行“异或”来形成一个加密串,并将其存储在*.mdb文件从地址“&H42”开始的区域内.用程序可以轻松的写出破解代码.网上已经有这样的程序了。现在我为大家推荐一款比较老,但非常实用的破解数据库密码程序:accesskey.exe(光盘中有提供)

      图3:  

      五:我们用特殊请求让脚本解析出错,得到数据库路径.

        在网络上,有很多人直接采用以下代码,来连接数据库,看:

      ....

      DB_Path = "Data/ABCD1234!@#1po.mdb"

      DB_String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DB_Path)

      Set Conn = Server.CreateObject("ADODB.Connection")

      Conn.Open DB_String

      ....

      数据库文件名也够复杂了,用程序破解,我想是没有人想去尝试的.

      像这样的边接方式我们都可以直接取得他的数据库路径.

      这种方法危险性太大了,知道本方法的人很少.这里不敢公布.

      一旦公布不知道有多少网站的数据库会被下载.等以后看情况再说吧.

      所以这里我只为大家提供临时补丁.

      在Conn.Open DB_String上面加上一句话:

      ON ERROR RESUME NEXT 就可以解决这个问题.
     防守篇:
      
      上面我们介绍了怎么去下载数据库.

      这里我再为大家提讲解一些防止数据库被下载的方法.

      一、你用的是虚拟主机:

      首先在你的MDB文件中建一个表.表中取一个字段名叫:NotDownLoad吧.

      在表名建一个字段.字段中填入:

      如图4:


      呵呵,再把数据库改名为.Asp的.为什么要取名为其实=’a’-1这里你可以乱输入

      只要不是正确的Asp语句就行了。因为这样把扩展名改成.ASP后在IE中输入的时候.

      遇到了他就会去解释之间的代码,让他解释吧。呵呵会出错,所以数据库绝对不会正确的被下载.  

      如图5:

      你让为安全了吗?呵呵还不安全.我们还得在数据库名前加上一个#号。

      如:#Data.Asp这里的#号并不是用来作防止下载的。防止下载的刚才的过程已经作了解释.当你有多个MDB文件,并放在同一个目录下.如:12yes的整站系统.  

      如果我们猜到管理员MDB文件的位置并且从另一个系统中得到SQL注入漏洞的同时

      可以采用ACCESS跨库查询的方法.来取得管理员库中的记录.

      如果我们在库名前面加上#号的时候,就算你猜测到了.我们也不怕

      提交:select * from d:webdata#data.asp.admin sql查询语句,系统会提示出错.因为#在SQL语法中有表示日期的作用.语法出错也就不会去执行查询条件了.(呵呵12yes目前还有一个漏洞我用access跨库的方法攻击成功过!)

      我认为比较安全的数据库就应该是#文件名.Asp 并且建一个临时表,表中有一字段

      输入ASP代码,让ASP不能被正确的解释.

      二、你用的是托管主机:

      这种防下载的方法就太好办了.呵呵把你的数据库放到IIS以外的目录.打死我,我也下不了.

      如你的WEB目录在D:WebWebSite目录下.

      那么就把数据库保存在D:WebData目录下.


      
    字体:
     
    设为主页 收藏本站 联系我们 友情连接 商务合作 网友留言
    Copyright©2006-2008 中华网络安全联盟 All rights reserved.