Навигация > Блог /

| Подписаться на RSS

Метод двенадцати ошибок (find_in_set + more-1-row)

Декабрь 24th, 2009 | 207 комментарие(я) | Опубликовано в SQL инъекции

Выпишу в блог все старые методы, ранее описанные на античате и в журнале «Хакер». В будущем подшаманю даты постов, чтобы более старые методы оказались ниже чем более новые.

Итак, поехали:

При работе MySQL выдаёт два типа ошибок: ошибки синтаксиса, которые можно отловить на этапе разбора строки и ошибки рантайма (времени выполнения) – те, которые можно выявить только во время выполнения запроса.

Типичной ошибкой синтаксиса является, к примеру ошибка:
ERROR 1146 (42S02): Table ‘lalala’ doesn’t exist
Наиболее известной в хакерской среде ошибкой времени выполнения является ошибка:
ERROR 1242: Subquery returns more than 1 row

More »

Метки: , , , , , ,

Вывод информации в ошибке для MySQL всех версий

Декабрь 15th, 2009 | 96 комментарие(я) | Опубликовано в SQL инъекции

Некоторое время назад мной была продемонстрирована методика получения значения поля в тексте выводимой ошибки, при слепой SQL инъекции. Методика была основана на использовании функции name_const(). Всё бы ничего, но смущает то, что эта функция полностью работоспособна только в MySQL версий 5.0.12-5.0.64.

Затем Дмитрием Евтеевым была продемонстрирована схожая методика основанная на использовании функции ExtractValue(), которая доступна начиная с MySQL 5.1.5.

В итоге получаем неплохое покрытие для MySQL 5й ветки. Для 4й ветки пока схожего варианта не было.

В связи с открытием блога, достаю из недр античата ещё один обнаруженный мной метод, который работает для MySQL всех версий начиная с 4.1 .

More »

Метки: , , , , , ,
  • О блоге

    Блог предназначен для публикации всяких разных записок технического плана. Буду стараться делать упор на собственные исследования, и всё то что мне покажется интересным.
  • Мета