我们有一个允许用户使用sql语句过滤列表的功能。
用户提供的语句实质上用作:
select * from table where id in (subquery) -- where subquery is given by the user
我试过给它); delete from table; --
和delete from table returning id
,但无济于事。
还有其他可能吗?我并不担心用户看到数据,否则他们无法访问。
答案 0 :(得分:0)
您的问题是互斥的,因为您将注入与特定的漏洞混淆。
是否存在针对where子句的用户提供的子查询的注入攻击?
是的,当然。注入任意SQL代码的能力正是SQL注入的内容。
我试过给它);从表中删除; - 并从表返回id删除,但无济于事。
在大多数情况下,此特定查询无法正常工作。
还有其他可能性吗?
是的,当然。主要是关于用户查看数据,否则他们无法访问。
我并不担心用户看到数据
因此请记住:您是否完全关注整个SQL注入或仅关注特定子集。