Перейти к содержимому
Назад к пути
Теория 2 мин чтения

1. Что такое Blind SQLi

Что такое Blind SQLi: Тихий шепот базы данных

Представьте, что вы стоите перед закрытой дверью и хотите узнать, есть ли кто-то внутри. Вы стучите: если дверь открылась — "да", если нет — "нет". Вы не видите комнату, но по реакции двери понимаете ответ. Именно так работает "слепая" инъекция (Blind SQLi): хакер извлекает данные, когда сервер не выдает ошибок и не показывает результаты напрямую.

Разберем механику этого скрытного метода и поймем, как по косвенным признакам можно прочитать содержимое всей базы.


1. Механика: "Да или Нет"

В классической инъекции хакер видит данные сразу в HTML-коде. В Blind SQLi его единственный канал связи — это изменение поведения сайта.

Пример уязвимого Go-хендлера:

func itemHandler(w http.ResponseWriter, r *http.Request) {
    id := r.URL.Query().Get("id")
    query := fmt.Sprintf("SELECT title FROM items WHERE id=%s", id) // ❌ Смертельно!

    var title string
    err := db.QueryRow(query).Scan(&title)
    if err != nil {
        w.WriteHeader(404) // Сообщение "Товар не найден"
        return
    }
    fmt.Fprint(w, title) // Сообщение "Товар: [Название]"
}

2. Как хакер "спрашивает" базу

Хакер посылает запросы-вопросы:

  • ?id=1 AND 1=1 → Сервер вернул 200 OK (Товар найден). База ответила "ДА".
  • ?id=1 AND 1=2 → Сервер вернул 404 Not Found (Пусто). База ответила "НЕТ".

Всё! Хакер только что открыл однобитный канал связи с вашей секретной базой данных.

Как это выглядит в браузере

Точка входа в лабораторной этого модуля — поле «Coupon code» в корзине. Это не URL и не форма поиска: значение сохраняется в cookie applied_coupon и используется в SQL без параметризации:

Оракул здесь — это сам факт применения скидки: если SQL-условие в payload истинно, скидка появляется в Order Summary; если ложно — скидки нет. Конкретный пейлоад в подсказках лабы намеренно не приведён: студент собирает его сам, опираясь на оракул TRUE/FALSE из теории.


3. Таблица сравнения: Classic vs Blind

Параметр Classic (In-band) Blind SQLi
Что видим Текст из базы (пароли) Изменение страницы (Да/Нет)
Количество запросов 1-2 Сотни и тысячи
Сложность 🟢 Низкая 🔴 Высокая (нужна автоматизация)

4. Почему это коварная уязвимость?

Многие разработчики думают: "Я не вывожу SQL-ошибки на экран, значит, хакер ничего не узнает". Это опасное заблуждение. Хакеру не нужны ваши ошибки, ему достаточно знать, сработал его AND или нет.


Blind SQLi — это тихий, но смертельно эффективный метод. Одной маленькой щелочки в логике «Да/Нет» бывает достаточно, чтобы вытащить всё содержимое вашей базы.

Далее мы изучим конкретные индикаторы истинности, которые хакеры используют для считывания ответов сервера.

Продолжить чтение

Что бы прочитать модуль полностью, зарегистрируйтесь/войдите на платформу

Когда закончишь — отметь раздел, чтобы продолжить.

🚧 Сайт в разработке. Полный функционал пока недоступен. Все вопросы — support@hackandfix.ru