为什么'OR='适用于 SQL 注入?



我一直在尝试研究为什么'OR''='适用于SQL注入?

此查询匹配什么?

'因为你可以让查询愉快地在"where"中间结束,然后插入你自己的代码。

Select group from user where id='1' or ''='';

是您希望它的外观。

分析代码:

Select group from user where id='PARAMETER';

是你必须使用的。ID 是参数。所以你修改它,而不是一个ID,你关闭引号,插入比较,并保持最后一个引号打开(所以它与结束的引号匹配),所以参数是:

' or ''='
空字符串

等于空字符串,查询会立即返回攻击者的用户组。

正如对我的回答的评论中所指出的,有问题的数据库引擎塑造了攻击。因此,请确保进行适当的比较。您的攻击可能需要如下所示:

or '1'='1

对于第二个问题:它匹配一切。或者什么都没有。

最新更新