insert into table1(id, message) values ("xxx", ""-(select sleep(3))-"");
这个"sleep(3)"语句为什么能够执行?哪个大佬能帮忙解答下
insert into table1(id, message) values ("xxx", ""-(select sleep(3))-"");
这个"sleep(3)"语句为什么能够执行?哪个大佬能帮忙解答下
8 回答2.8k 阅读
2 回答5.2k 阅读✓ 已解决
5 回答1.4k 阅读
4 回答1.5k 阅读✓ 已解决
3 回答2.2k 阅读
8 回答1.3k 阅读
3 回答1k 阅读✓ 已解决
""-(select sleep(3))-""
可以认为是一个算术表达式:""【空字符串】-【减去】select sleep(3)【查询结果】-【减去】""【空字符串】。题主可以将空字符串
""
换成任意数字字符串,如"5"
、"8"
,再将减号-
换成加号+
,可以得到不同的结果,这也从侧面验证了 SQL 执行器是将其理解为算术表达式。