Перейти к содержимому

Поиск по платформе

SQL Injection (Auth Bypass)

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

Автор: Hack & Fix
Освоишь: параметризованные запросыprepared statementsleast-privilege DB
Легко+30 XP ~20 мин golang
CWE-89 · A03:2021
Обложка: SQL Injection (Auth Bypass) Обложка: SQL Injection (Auth Bypass)
Задача
# 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` / `???`

Похожие лабораторные (4)

другие лабы по этой уязвимости
Обложка лабы: Union-Based SQL Injection Обложка лабы: Union-Based SQL Injection
SQLi

Union-Based SQL Injection

Получение пароля администратора с использованием UNION SELECT

+60 XP
Go FREE
Exploit Fix
Обложка лабы: Blind Boolean SQL Injection Обложка лабы: Blind Boolean SQL Injection
SQLi

Blind Boolean SQL Injection

Слепая Boolean-based SQL-инъекция через Cookie купона

+90 XP
Go FREE
Exploit Fix
Обложка лабы: Time-Based Blind SQL Injection Обложка лабы: Time-Based Blind SQL Injection
SQLi

Time-Based Blind SQL Injection

Эксплуатация слепой SQL-инъекции, основанной на задержках времени ответа (Time-Based) в SQLite.

+90 XP
Go FREE
Exploit Fix
Обложка лабы: SQL Injection: Second-Order (хранимая инъекция) Обложка лабы: SQL Injection: Second-Order (хранимая инъекция)
SQLi

SQL Injection: Second-Order (хранимая инъекция)

Payload сохраняется в БД через безопасный INSERT, но выполняется в другом запросе через конкатенацию строк

+90 XP
Go FREE
Exploit Fix