0

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

这个查询匹配什么?

4

1 回答 1

2

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

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

是你想要的样子。

分析代码:

Select group from user where id='PARAMETER';

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

' or ''='

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

正如我在回答的评论中所指出的,有问题的数据库引擎会影响攻击。因此,您要确保进行正确的比较。您的攻击可能需要如下所示:

or '1'='1

对于第二个问题:它匹配一切。或无。

于 2013-11-05T19:18:21.257 回答