假设我有这样一个易受攻击的查询:
var q = 'SELECT x FROM y WHERE id = ' + req.body.id + ' ORDER BY date DESC;';为了解决这个问题,req.body.id可以是没有类型检查的任何整数参数,因为HTTP上的所有内容都是字符串。
由于MySQL扩展默认禁用多语句查询,所以我无法执行以下操作:
http://example.net/foo?id=1;INSERT INTO y VALUES (things...);--是否可以使用此易受攻击的查询执行数据操作语句(例如插入、更新、删除)?
发布于 2014-10-23 03:37:50
只有当目标应用程序使用MySQL多查询接口时,才有可能注入堆栈查询语句。绝大多数SQL注入不允许查询堆叠。查询堆叠很有用,但是您可以访问数据库,甚至可以在没有它的情况下弹出一个shell。SQLMap可以执行这些攻击。
查询堆叠在有关sql注入的文档中比在现实世界中更常用。这可能是因为使用查询堆叠演示来解释sql注入是最简单的。
https://security.stackexchange.com/questions/71402
复制相似问题