Наши продукты

Все продукты →
  • Подписка на «Хакер»

    Все статьи, архив, PDF выпуски и бонусы при покупке товаров

    6000₽ в год

    Подписаться
  • Предзаказ четвертого печатного выпуска «Хакера»

    лучшее август..ноябрь 2026

    2000₽

    Заказать
  • Третий печатный выпуск «Хакера»

    лучшие материалы мая..июля 2026

    2000₽

    Заказать
  • Печатный спецвыпуск №4.

    Лучшие материалы 2021-2022 годов

    2000₽

    Заказать

Представлю недавно
опубликованный на форуме 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».

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии