group by上的计数(*)触发mysql中的重复键错误

q1qsirdb  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(284)

大家好,我正在读一本关于盲sql注入的sans书籍
这本书的作者提到如果你想在mysql中触发一个错误
使用此查询并将其注入目标

1 and (select 1 from (select count(*),concat(/*your malicious query here*/,floor(rand(0)*2)x from users group by x) a)

他说(作者) count(*)group by "floor(rand(0)*2)" 导致内部表中出现重复键并显示该键
我的问题是:首先,他为什么把x放在那里?
第二,什么是内部表中的重复键错误,是什么查询导致它,而不是这个查询,以及如何导致它 count(*)group by "floor(rand(0)*2)" 使它发生

zdwk9cvp

zdwk9cvp1#

x 是表达式的别名 floor(rand(0)*2) ,因此可以作为 GROUP BY x .
“内部表中的重复键”听起来像是对mysql错误的描述,当它试图处理这个查询时会出现这个错误。

相关问题