Mysql sql注入错误1062(23000):重复条目?

Mysql sql注入错误1062(23000):重复条目?,mysql,Mysql,我试图理解mysql中的这些错误: 所以我在表中创建了一个序列: mysql> select id from test_injection ; 结果: +----+ | id | +----+ | 0 | | 1 | | 1 | | 1 | | 1 | | 0 | +----+ 6 rows in set (0.00 sec) +----------+----+ | count(*) | id | +----------+----+ | 2 | 0

我试图理解mysql中的这些错误:

所以我在表中创建了一个序列:

mysql> select id from test_injection ;
结果:

+----+
| id |
+----+
|  0 |
|  1 |
|  1 |
|  1 |
|  1 |
|  0 |
+----+
6 rows in set (0.00 sec) 
+----------+----+
| count(*) | id |
+----------+----+
|        2 |  0 |
|        4 |  1 |
+----------+----+
2 rows in set (0.00 sec)
我还尝试通过使用select+agregate函数和GROUPBY来消除上面的错误

mysql> select count(*),id from test_injection group by id ;
结果:

+----+
| id |
+----+
|  0 |
|  1 |
|  1 |
|  1 |
|  1 |
|  0 |
+----+
6 rows in set (0.00 sec) 
+----------+----+
| count(*) | id |
+----------+----+
|        2 |  0 |
|        4 |  1 |
+----------+----+
2 rows in set (0.00 sec)
我试了很多次,但是没有虫子发生

因此,我尝试在上面的bug中使用它们的有效负载:

mysql> select count(*),floor(rand(0)*2) from security.users ;
结果:

+----+
| id |
+----+
|  0 |
|  1 |
|  1 |
|  1 |
|  1 |
|  0 |
+----+
6 rows in set (0.00 sec) 
+----------+----+
| count(*) | id |
+----------+----+
|        2 |  0 |
|        4 |  1 |
+----------+----+
2 rows in set (0.00 sec)
错误1062(23000):密钥“”的重复条目“1”


那么,为什么在第二次选择中会发生错误呢?据我所知,重复错误发生在更新/插入查询中,而不是select中

我在互联网上搜索了很多人可以向我解释这一点,我发现这只发生在插入/更新查询中,所以当我们生成一个序列并对其执行聚合函数时,这将在临时分组表中插入序列,然后执行聚合函数,因此会出现错误