В любом запросе UNION количество столбцов должно быть одинаковым в каждом SELECT, который вы объединяете с UNION.Другими словами, следующее является ошибкой, поскольку число столбцов не одинаково:
SELECT a, b, c FROM table1
UNION
SELECT a, b FROM table1
При выполнении SQL-инъекции вы можете не знать количество столбцов в списке выбора запроса.ты эксплуатируешь.Добавьте больше столбцов с NULL по мере необходимости.Просто продолжайте пробовать, пока не получите что-то успешное.
SELECT * FROM drinks WHERE drinkname='smirnoff'
UNION
SELECT COLUMN_NAME, NULL, NULL, NULL, ...
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'drinks'
Это может показаться утомительным и подверженным ошибкам.
Но преступники, которые совершают атаки с использованием SQL-инъекций, довольно мотивированы.