Practico sobre la inyección de SQL basada en errores, pero no hay ninguna buena referencia para ello ...
por ejemplo :):
mysql> select count(*),floor(rand()*2) as a from users group by a;
ERROR 1062 (23000): Duplicate entry '0' for key 'group_key'
mysql> select count(*),floor(rand()*2) as a from users group by a;
ERROR 1062 (23000): Duplicate entry '1' for key 'group_key'
mysql> select count(*),floor(rand()*2) as a from users group by a;
+----------+---+
| count(*) | a |
+----------+---+
| 10 | 0 |
| 3 | 1 |
+----------+---+
2 rows in set (0.00 sec)
¿Por qué la primera y la segunda consulta no se ejecutan?
¿significa el valor de la primera o segunda fila de iguales con una columna?
entonces, ¿por qué cuando cambio la consulta a esto no puedo ver ningún mensaje de error?
mysql > seleccione 1, floor (rand () * 2) como un grupo de usuarios por a;
+---+---+
| 1 | a |
+---+---+
| 1 | 0 |
| 1 | 1 |
+---+---+
2 rows in set (0.00 sec)
No puedo entender la vulnerabilidad de inyección de SQL basada en error y también veo este enlace: enlace ¡Pero todavía tengo una pregunta!
¿Cómo se produce esta vulnerabilidad?
Gracias