Перейти к содержимому
← Каталог golang SQL Injection

SQL Injection (Auth Bypass)

Обход авторизации с использованием SQL Injection

easygolang
Задача
# SQL Injection (Обход аутентификации) ## Сценарий Вы проводите аудит безопасности **SecureShop** — внутреннего магазина компании, построенного на Go. Команда разработки утверждает, что механизм входа безопасен, однако автоматический сканер выявил подозрительное поведение при обработке спецсимволов в форме логина. ## Цель 1. Обойдите механизм аутентификации с помощью SQL-инъекции. 2. Войдите как пользователь **admin**, не зная его пароля. 3. Купите секретный товар **CTF Flag**, чтобы получить флаг. ## Теория SQL-инъекция возникает, когда приложение формирует SQL-запросы путём прямой подстановки пользовательского ввода в строку запроса. Это позволяет атакующему изменить логику запроса. **Уязвимый паттерн:** ```go // Конкатенация SQL-запроса из пользовательского ввода: query := "SELECT id FROM users WHERE username='" + u + "' AND password='" + p + "'" ``` Атакующий может использовать символ `'` для выхода из строкового контекста, а `--` — для комментирования оставшейся части запроса (например, проверки пароля). ## Точка входа атаки `POST /login` — форма входа с полями `username` и `password`. * **Обычный пользователь:** `demo` / `demo` * **Администратор:** `admin` / `???`
🚧 Сайт в разработке. Полный функционал пока недоступен. Все вопросы — support@hackandfix.ru