如何组合存储过程和选择查询结果?

时间:2012-07-16 11:12:30

标签: sql stored-procedures sql-injection xp-cmdshell

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

例如:

Select name from employee
union
exec xp_cmdshell 'whoami'

我知道这不会奏效,但有些相似会很棒:)

2 个答案:

答案 0 :(得分:2)

您应该知道此存储过程返回的内容以及输出内容。然后,当您知道此过程返回的表模式时,您可以使用以下语法:

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

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

答案 1 :(得分:0)