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 — это тихий, но смертельно эффективный метод. Одной маленькой щелочки в логике «Да/Нет» бывает достаточно, чтобы вытащить всё содержимое вашей базы.
Далее мы изучим конкретные индикаторы истинности, которые хакеры используют для считывания ответов сервера.
Продолжить чтение
Что бы прочитать модуль полностью, зарегистрируйтесь/войдите на платформу
Когда закончишь — отметь раздел, чтобы продолжить.