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

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

Утечка данных через сообщения об ошибках

Подробные сообщения об ошибках раскрывают структуру БД

Автор: Hack & Fix
Освоишь: error-sanitizationstack-trace guardheaders hardening
Легко+30 XP ~12 мин golang
CWE-200 · A01:2021 Pro
Обложка: Утечка данных через сообщения об ошибках Обложка: Утечка данных через сообщения об ошибках
Задача
# Раскрытие информации через сообщения об ошибках ## Сценарий Вы — пентестер мебельного маркетплейса **LoftCart**. Приёмка перед релизом почти пройдена: авторизация, CSRF-защита и параметризованные запросы на месте. Однако тестировщик, опечатавшись в номере товара, получил вместо аккуратной страницы «не найдено» простыню технического текста — и передал её вам как подозрительную. Команда уверена, что это безобидная мелочь; вам предстоит проверить, что именно утекает вместе с такой ошибкой. ## Цель 1. Спровоцируйте ошибку на эндпоинте карточки товара — несуществующим или невалидным идентификатором — и изучите полный текст ответа сервера. 2. Определите, какие категории данных попадают в ответ: текст внутренней ошибки, отладочная секция, конфигурация процесса. 3. Извлеките флаг лабы из отладочной секции ответа. ## Теория Подробные сообщения об ошибках — классический канал утечки: обработчик возвращает клиенту внутренние детали, предназначенные разработчику. В ответ попадают текст ошибки базы данных с именами таблиц и структурой запроса, а заодно — «временный» отладочный вывод, который забыли убрать перед релизом. Атакующему достаточно направить невалидный вход и прочитать ответ: чем подробнее диагностика, тем больше он узнает о схеме данных и конфигурации приложения, включая секреты. **Уязвимый паттерн:** ```go if err != nil { // Сырая ошибка и отладочный дамп уходят клиенту: http.Error(w, fmt.Sprintf("Error: %v\n--- Debug Info ---\n...", err), 500) } ``` Механика атаки: объект ошибки форматируется напрямую в тело HTTP-ответа вместе с секцией отладочной информации. Обращение к несуществующему ресурсу гарантированно вызывает ошибку чтения из базы — и сервер сам раскрывает структуру запроса, внутренние детали и секретные значения из конфигурации процесса. ## Точка входа атаки `GET /product/{id}` — карточка товара; укажите несуществующий или невалидный идентификатор. * **Обычный пользователь:** `demo` / `demo`

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

другие лабы по этой уязвимости
Обложка лабы: Information Disclosure: Открытый debug-эндпоинт Обложка лабы: Information Disclosure: Открытый debug-эндпоинт
Info Disc

Information Disclosure: Открытый debug-эндпоинт

Debug-эндпоинт раскрывает переменные окружения и список пользователей без аутентификации

+30 XP
Go Pro
Exploit Fix
Обложка лабы: Information Disclosure: Утечка через backup-файлы Обложка лабы: Information Disclosure: Утечка через backup-файлы
Info Disc

Information Disclosure: Утечка через backup-файлы

Статическая директория содержит backup-файлы с конфиденциальными данными. Найдите SQL-дамп и извлеките флаг.

+30 XP
Python Pro
Exploit Fix
Обложка лабы: Information Disclosure: Flask Debug Mode Обложка лабы: Information Disclosure: Flask Debug Mode
Info Disc

Information Disclosure: Flask Debug Mode

Flask запущен с debug=True. Через Werkzeug debugger можно получить переменные окружения.

+30 XP
Python Pro
Exploit Fix