[SQL]关于xp_cmdshell 。。注意安全!

转载:http://www.cnblogs.com/lbk/archive/2005/04/28/146973.html
昨天看了存储过程的一点东西,其中就说到了xp_cmdshell 这个东西,以前只是知道黑客能通过MSSQL的漏洞来入侵你的系统,不是太明白。当知道了xp_cmdshell 的强大之后,试了一下,有点开窍了,下面是这方面的一点东西。
xp_cmdshell可以让系统管理员以操作系统命令行解释器的方式执行给定的命令字符串,
  并以文本行方式返回任何输出,是一个功能非常强大的扩展存贮过程。
   一般情况下,xp_cmdshell对管理员来说也是不必要的,xp_cmdshell的消除不会对Server造成
  任何影响。
   可以将xp_cmdshell消除:
   Use Master
   Exec sp_dropextendedproc N’xp_cmdshell’
   Go
  
   如果需要的话,可以把xp_cmdshell恢复回来:
   Use Master
   Exec sp_addextendedproc N’xp_cmdshell’, N’xplog70.dll’
   Go
xp_cmdshell 操作系统命令外壳
这个过程是一个扩展存储过程,用于执行指定命令串,并作为文本行返回任何输出。
语法:
    xp_cmdshell command_string[,no_output]
        command_string    要执行的命令串
        no_output         不返回命令执行的输出
说明:
在把xp_cmdshell的执行许可权授予用户时,用户将能够在Windows NT命令
外壳执行运行SQL Server(通常是本地系统)的帐号有执行特权的任何
操作系统命令。
例:
1、EXEC master..xp_cmdshell "dir *.exe"
                             返回可执行文件的列表
2、EXEC master..xp_cmdshell "copy d:\test1.jpg e:\" no_output
                             不返回输出
3、特别是执行
EXEC master..xp_cmdshell "net start awhost32"
EXEC master..xp_cmdshell "net stop awhost32"
可以启动和停止远程的PCAnywhere服务。对远程服务器操作很有帮助。
最后提醒大家,注意你的系统的安全,保护自己,提高警惕。

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏