大家好,我正在阅读一本关于 sql 盲注的 sans 书
书上有提到如果要在mysql中触发错误
使用此查询并将其注入(inject)目标
1 and (select 1 from (select count(*),concat(/*your malicious query here*/,floor(rand(0)*2)x from users group by x) a)
他说(作者)count(*)
on a group by "floor(rand(0)*2)"
导致内部表中的重复键并显示 key
我的问题: 首先,他为什么把 x 放在那里?
第二个是什么是内部表错误中的重复键以及除了这个之外是什么查询导致它以及 count(*)
如何在 group by "floor(rand(0)*2 )"
导致它发生
最佳答案
x
是表达式 floor(rand(0)*2)
的别名,所以它可以在 GROUP BY x
中引用.
“内部表中的重复键”听起来像是对在尝试处理此查询时发生的 MySQL 错误的描述。
关于mysql - mysql 中由 group by 上的 count(*) 触发的重复键错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48088405/