3

我正在尝试将结果xp_cmdshell与选择查询结合起来。我已经尝试过联合并阅读了有关创建临时表的信息,但我的结果将只有 1 列。更准确地说,我需要一个较小的查询来结合xp_cmdshell选择查询的结果,因为我试图在基于联合的 sql 注入中使用它

例如:

Select name from employee
union
exec xp_cmdshell 'whoami'

我知道这行不通,但有点相似会很棒:)

4

2 回答 2

2

您应该知道这个存储过程返回什么以及输出什么。然后,当您知道此过程返回的表架构时,您可以使用以下语法:

DECLARE @procedureOutput nvarchar(max)
SET @procedureOutput=Exec xp_cmdshell 'dir'
SELECT name FROM employee union @procedureOutput

如果您需要转换两种不同的数据类型,CAST并且CONVERT命令适合您。

于 2012-07-16T11:22:04.627 回答
-1

创建一个临时表并插入 #temp EXEC.. 或使用 OPENROESET。请参阅此 http://beyondrelational.com/modules/2/blogs/70/posts/10812/select-columns-from-exec-procedurename-is-this-possible.aspx

于 2012-07-16T11:24:26.153 回答