为什么睡眠功能在算术运算中执行?

时间:2018-06-28 15:35:57

标签: mysql

在普通的SQL查询中,对于Mysql版本> 5.0

Select A, B FROM table where id =1 

如果攻击者为id参数注入1-sleep(10),为什么数据库会休眠?连字符在这里起什么作用?它不是无效的语法(整数和函数的算术运算)吗?

1 个答案:

答案 0 :(得分:3)

https://dev.mysql.com/doc/refman/8.0/en/miscellaneous-functions.html#function_sleep说:

  

睡眠(暂停)持续时间参数给出的秒数,然后返回0。

换句话说,它返回一个整数,完全可以在算术表达式中使用。

连字符(-)是arithmetic operator for subtraction

我可以推断,当攻击者注入睡眠时,他们正在尝试测试您的代码是否容易受到SQL注入的攻击。当他们添加更长的睡眠时间时,他们可以对响应进行计时,以查看响应是否延长。这将确认他们可以通过其他方式利用您的代码。