我正在尝试将xp_cmdshell
的结果与选择查询结合起来。
我试过工会&阅读有关创建临时表的信息,但因为我的结果只有1列。更确切地说,我需要一个较小的查询来将xp_cmdshell
的结果与select查询结合起来,因为我试图在基于联合的sql注入中使用它
例如:
Select name from employee
union
exec xp_cmdshell 'whoami'
我知道这不会奏效,但有些相似会很棒:)
答案 0 :(得分:2)
您应该知道此存储过程返回的内容以及输出内容。然后,当您知道此过程返回的表模式时,您可以使用以下语法:
DECLARE @procedureOutput nvarchar(max)
SET @procedureOutput=Exec xp_cmdshell 'dir'
SELECT name FROM employee union @procedureOutput
如果您需要转换两种不同的数据类型,CAST
和CONVERT
命令适合您。
答案 1 :(得分:0)
创建临时表并插入#temp EXEC ..或使用OPENROESET。请参阅此 http://beyondrelational.com/modules/2/blogs/70/posts/10812/select-columns-from-exec-procedurename-is-this-possible.aspx