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