我一直在尝试研究为什么'OR''='
适用于SQL注入?
此查询匹配什么?
'因为你可以让查询愉快地在"where"中间结束,然后插入你自己的代码。
Select group from user where id='1' or ''='';
是您希望它的外观。
分析代码:
Select group from user where id='PARAMETER';
是你必须使用的。ID 是参数。所以你修改它,而不是一个ID,你关闭引号,插入比较,并保持最后一个引号打开(所以它与结束的引号匹配),所以参数是:
' or ''='
空字符串等于空字符串,查询会立即返回攻击者的用户组。
正如对我的回答的评论中所指出的,有问题的数据库引擎塑造了攻击。因此,请确保进行适当的比较。您的攻击可能需要如下所示:
or '1'='1
对于第二个问题:它匹配一切。或者什么都没有。