SQL注入攻击布尔运算符

时间:2018-08-13 16:39:25

标签: sql sql-injection boolean-expression

在SQL注入攻击中,X AND((1 = 1)OR(1 = 0))的值是什么?

能否请您逐步解释一下? (1 = 1)等于1,是(1 = 0)等于0?

2 个答案:

答案 0 :(得分:2)

是,(1 = 1)与1或True相同,(1 = 0)与0或False相同

如果您感到困惑并且正在运行MySQL,则也可以运行类似这样的内容来轻松获得答案:

SELECT 1=1, 1=0, (1=1 OR 1=0)

因此,逐步操作将是:

  1. (1=1) OR (1=0)等于True OR False
  2. True or False等于True
  3. 因此X AND True的值将等于X

答案 1 :(得分:0)

1=11=0是比较运算符。 1=1的评估将始终为真,因此无论如何,语句X的所有内容都将返回。 SQL注入的想法是,用户可以将参数传递到表单输入中,在该值中,SQL调用中使用的值不能正确检查以确保输入不会引起问题。如果用户输入输入(假设搜索查询)的值为OR 1=1--(其中--注释了查询的其余部分),则在服务器端使用的语句将返回数据由于输入是有效的SQL命令,用户不应看到。这就是使用比较的原因。