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

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

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

例如:

Select name from employee
union
exec xp_cmdshell 'whoami'

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

最佳答案

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

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

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

关于sql - 如何结合存储过程和选择查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11503067/

相关文章:

java - DELETE .. RETURNING rowid 在 JOOQ 不工作

sql - 仅返回 GROUPING SETS 查询中每个组的前 n 个结果

mysql - 如何在 heidisql 中创建存储过程?

sql-injection - 如何解决 Athena 的 SQL 注入(inject)?

php - Binding参数如何防止Sql注入(inject)?

c# - Linq .Count() 来自另一个带有内连接的表 (C#)

sql - 单单多项目,SQL表设计

php - 值从 php 到存储过程

MySQL 将 JOIN 语句转换为存储过程或函数?

c# - 如何在从中选择的表发生变化的 ADO.NET 中安全地创建查询?