mssql sqlserver 系统存储过程xp_cmdshell简介说明


摘要:
下文主要讲述超级危险的sql系统存储过程xp_cmdshell的简介,如下所示:
实验环境:sql server 2008 R2



xp_cmdshell功能说明

xp_cmdshell 使用此系统存储过程,我们可以在sql脚本中运行cmd命令,并返回相应的输出结果,

由于cmd命令属于操作系统管理范畴的命令,所以此命令通常情况下会被关闭,
因为黑客可以通过运行此命令,在服务器上建立用户名、上传文件等等有害行为

xp_cmdshell语法说明
xp_cmdshell ‘命令内容’
—xp_cmdshell返回值说明—
将采用列表的形式返回命令执行的结果



xp_cmdshell举例应用

1.获取d盘所有目录

  exec xp_cmdshell 'dir D:\'

2.写入信息至相应的文件中

    DECLARE @maomaoA sysname, @maomaoB sysname
    SET @maomaoB = '测试文件写入'
    SET @maomaoA = 'echo ' + @maomaoB + ' > D:/test.txt'
    EXEC master..xp_cmdshell @maomaoA

3.将c盘的testA.txt文件复制到d盘testB.txt

      USE master
	  go
     EXEC xp_cmdshell 'copy c:\testA.txt  d:\testB.txt'

4.将返回内容插入至临时表中

  use master 
  go

  create table #maomao(info sysname null)
  go
  
   insert into #maomao (info)
    exec xp_cmdshell 'dir D:\' 
    go
	select *from #maomao
   go
  truncate table #maomao
  drop     table #maomao