当前位置:七道奇文章资讯数据防范MSSQL防范
日期:2011-05-02 15:21:00  来源:本站整理

SQL注入漏洞全接触--入门篇(二)[MSSQL防范]

赞助商链接



  本文“SQL注入漏洞全接触--入门篇(二)[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
  那么,什么样的测试办法才是对比精确呢?答案以下: 

  ① http://www.19cn.com/showdetail.ASP?id=49
  ② http://www.19cn.com/showdetail.asp?id=49 and 1=1
  ③ http://www.19cn.com/showdetail.asp?id=49 and 1=2  

  这就是经典的1=1、1=2测试法了,怎么判断呢?看看上面三个网址返回的后果就知道了:  

  可以注入的表现:  

  ① 正常显示(这是必定的,不然就是程序有错误了)
  ② 正常显示,内容基本与①相同
  ③ 提醒BOF或EOF(程序没做任何判断时)、或提醒找不到记录(判断了rs.eof时)、或显示内容为空(程序加了on error resume next) 

  不可以注入就对比简单判断了,①一样正常显示,②和③普通城市有程序定义的错误提醒,或提醒范例转换时出错.  

  当然,这只是传入参数是数字型的时刻用的判断办法,实际利用的时刻会有字符型和搜索型参数,我将在中级篇的"SQL注入普通步骤"再做解析.   

  第三节、判断数据库范例及注入办法  

  差别的数据库的函数、注入办法都是有差别的,所以在注入之前,我们还要判断一下数据库的范例.普通ASP最常搭配的数据库是Access和SQLServer,网上超越99%的网站都是此中之一.  

  怎么让程序奉告你它利用的什么数据库呢?来看看:  

  SQLServer有一些系统变量,假如服务器IIS提醒没关闭,并且SQLServer返回错误提醒的话,那可以直接从出错信息获得,办法以下:  

  http://www.19cn.com/showdetail.asp?id=49 and user>0  

  这句语句很简单,但却包含了SQLServer特有注入办法的精华,我自己也是在一次无意的测试中发现这种效率极高的猜解办法.让我看来看看它的含义:首先,前面的语句是正常的,重点在and user>0,我们知道,user是SQLServer的一个内置变量,它的值是当前衔接的用户名,范例为nvarchar.拿一个nvarchar的值跟int的数0对比,系统会先试图将nvarchar的值转成int型,当然,转的历程中必定会出错,SQLServer的出错提醒是:将nvarchar值 "abc" 转换数据范例为 int 的列时发生语法错误,呵呵,abc恰是变量user的值,这样,不废吹灰之力就拿到了数据库的用户名.在今后的篇幅里,大家会看到很多用这种办法的语句.  

   趁便说几句,众所周知,SQLServer的用户sa是个平等Adminstrators权限的角色,拿到了sa权限,几近必定可以拿到主机的Administrator了.上面的办法可以很便利的测试出能否是用sa登录,要注意的是:假如是sa登录,提醒是将"dbo"转换成int的列发生错误,而不是"sa".   

  假如服务器IIS不答应返回错误提醒,那怎么判断数据库范例呢?我们可以从Access和SQLServer和辨别动手,Access和SQLServer都有自己的系统表,比方存放数据库中全部对象的表,Access是在系统表[msysobjects]中,但在Web环境下读该表会提醒"没有权限",SQLServer是在表[sysobjects]中,在Web环境下可正常读取.  

  在确承认以注入的情形下,利用下面的语句:  

  http://www.19cn.com/showdetail.asp?id=49 and (select count(*) from sysobjects)>0
  http://www.19cn.com/showdetail.asp?id=49 and (select count(*) from msysobjects)>0  

  假如数据库是SQLServer,那么第一个网址的页面与原页面http://www.19cn.com/showdetail.asp?id=49是大致相同的;而第二个网址,由于找不到表msysobjects,会提醒出错,就算程序有容错处理,页面也与原页面完好差别.  

  假如数据库用的是Access,那么情形就有所差别,第一个网址的页面与原页面完好差别;第二个网址,则视乎数据库设置能否答应读该系统表,普通来说是不答应的,所以与原网址也是完好差别.大大都情形下,用第一个网址便可以得知系统所用的数据库范例,第二个网址只作为开启IIS错误提醒时的考证
  以上是“SQL注入漏洞全接触--入门篇(二)[MSSQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 防备SQL注入式攻击
  • SQL注入漏洞全接触--高级篇(二)
  • SQL注入漏洞全接触--高级篇(一)
  • <b>SQL注入漏洞全接触--进阶篇(二)</b>
  • SQL注入漏洞全接触--进阶篇(一)
  • SQL注入漏洞全接触--入门篇(二)
  • SQL注入漏洞全接触--入门篇(一)
  • SQL Server利用程序中的高级SQL注入
  • SQL注入攻击及其防备检测技术研究
  • 闻名的SQL流量注入(SQL注入)攻击法
  • SQL注入奇招致胜 UNION查询轻松免费看片子
  • 安全入门:SQL注入漏洞全接触
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .