【问题标题】:How to combine stored procedure and select query result?如何结合存储过程和选择查询结果?
【发布时间】:2012-07-15 05:27:30
【问题描述】:

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

例如:

Select name from employee
union
exec xp_cmdshell 'whoami'

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢!!仍然无法工作...向 Exec 抛出错误...试图使其工作:)
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2010-10-10
      • 2021-03-27
      • 2011-02-03
      • 2013-09-24
      • 2020-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-23
      相关资源
      最近更新 更多