
Подробный отчёт о тестировании на проникновение, демонстрирующий неаутентифицированный обход пути (CVE-2019-11447) в плагине Simple Backup для WordPress, включающий этапы эксплуатации, анализ воздействия и рекомендации по устранению уязвимости.
| Пункт | Детали |
|---|---|
| Название документа | Отчёт о тестировании на проникновение — обход путей в WordPress |
| Клиент/Экзамен | HackTheBox Lab — CPTS Exercise 1 |
| Дата | 22 августа 2026 г. |
| Оценщик | Fernando Viana (специалист по тестированию на проникновение) |
| Тип оценки | Gray Box (внешняя, без учётных данных) |
| Лабораторная среда | 154.57.164.73:30706 |
| Продолжительность лабораторной работы | 1 час |
| Цели | Выявить и проэксплуатировать уязвимости для получения доступа к защищённым файлам |
| Полученный флаг | HTB{my_f1r57_h4ck} |
В ходе данной оценки на проникновение веб-приложения, размещённого на 154.57.164.73:30706, была выявлена критическая уязвимость, позволяющая неаутентифицированным злоумышленникам скачивать и читать произвольные файлы из файловой системы сервера.
Уязвимая установка WordPress содержит устаревший плагин (Simple Backup v2.7.10) с уязвимостью обхода путей (CVE-2019-11447), которая допускает несанкционированный доступ к файлам без необходимости аутентификации или авторизации.
Данная уязвимость была успешно проэксплуатирована для получения файла /flag.txt из корня сервера, что подтверждает полное нарушение конфиденциальности. Злоумышленник с таким доступом мог бы:
wp-config.php, .env)Требуются незамедлительные критические действия по устранению этой уязвимости, поскольку она представляет чрезвычайный риск для безопасности данных, соответствия требованиям конфиденциальности (GDPR, HIPAA, PCI-DSS) и целостности системы.
| Критичность | Количество | Влияние на бизнес |
|---|---|---|
| 🔴 КРИТИЧЕСКАЯ | 1 | Полное нарушение конфиденциальности; несанкционированный доступ к файлам |
| 🟠 ВЫСОКАЯ | 0 | — |
| 🟡 СРЕДНЯЯ | 0 | — |
| 🟢 НИЗКАЯ | 0 | — |
| ℹ️ ИНФОРМАЦИОННАЯ | 1 | Обнаружены устаревшие версии программного обеспечения |
Тип оценки: Gray Box (внешний злоумышленник, учётные данные не предоставлены, сетевой доступ имеется)
Даты оценки: 22 августа 2026 г.
Подход к тестированию: Нескрытная, методичная оценка в соответствии с отраслевым стандартом тестирования на проникновение (PTES):
CVE-2019-11447 | CWE-22: Ненадлежащее ограничение пути к каталогу
Плагин WordPress Simple Backup (версия 2.7.10/2.7.11, Exploit-DB 39883) содержит уязвимость обхода путей на своей административной странице «Backup Manager». Плагин не очищает путь к файлу, передаваемый через GET-параметр download_backup_file, что позволяет злоумышленнику выйти за пределы предполагаемого каталога simple-backup/ с помощью последовательностей относительных путей (../) и скачать любой файл, доступный для чтения процессу веб-сервера, — включая файлы в корне файловой системы.
Уязвимая конечная точка:
GET /wp-admin/tools.php?page=backup_manager&download_backup_file=../../../../../../../../../../flag.txt
page=backup_manager направляет запрос в обработчик административной страницы плагина; download_backup_file — это параметр, который код плагина читает напрямую и конкатенирует в путь файловой системы без проверки, что позволяет обход каталога.
7.5 - HIGH (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)
Нарушение конфиденциальности: ⚠️ КРИТИЧЕСКОЕ
Злоумышленники могут прочитать любой файл, доступный веб-серверу, включая:
| Файл | Влияние | Уровень риска |
|---|---|---|
/wp-config.php | Учётные данные базы данных, соли, ключи | 🔴 КРИТИЧЕСКИЙ |
/.env | API-ключи, секреты, конфигурация | 🔴 КРИТИЧЕСКИЙ |
/etc/passwd | Перечисление пользователей, карта системы | 🟠 ВЫСОКИЙ |
SSH-ключи (.ssh/id_rsa) | Боковое перемещение, доступ к системе | 🔴 КРИТИЧЕСКИЙ |
/proc/self/environ | Секреты работающего приложения | 🟠 ВЫСОКИЙ |
| Каталог загрузок пользователей | Приватные файлы, медиа | 🟠 ВЫСОКИЙ |
Регуляторное влияние:
В бюллетене Exploit-DB (39883.txt, читается через searchsploit -x — см. ht4-poc.png) документирован примитив удаления плагина из simple-backup-manager.php:
if(array_key_exists('delete_backup_file', $_GET)){
$this->delete_local_backup_file($_GET['delete_backup_file']);
}
$bk_dir = ABSPATH."simple-backup/";
unlink($bk_dir . $filename);
$filename поступает напрямую из $_GET['delete_backup_file'] без basename() или проверки на выход за пределы каталога. Передача ../pizza.txt приводит к тому, что $bk_dir . $filename разрешается в .../simple-backup/../pizza.txt → .../pizza.txt, что позволяет выйти за пределы предполагаемой папки резервных копий.
Примитив download, фактически эксплуатировавшийся в этом сценарии (download_backup_file), использует точно такой же шаблон несанитизированной конкатенации в том же плагине, но возвращает файл запрашивающему вместо его удаления — именно это позволило извлечь /flag.txt из корня файловой системы (10× ../ от ABSPATH/simple-backup/).
Проблема:
basename() для удаления компонентов каталогаrealpath() остаётся в пределах ABSPATH."simple-backup/"current_user_can() / аутентификации перед отдачей файла — обработчик выполняется при загрузке плагина, до собственного шлюза аутентификации wp-admin WordPress, поэтому он доступен без входа в системуПодключение к цели выполнялось напрямую через браузер (http://154.57.164.73:30706/). Установка WordPress имеет заголовок "GETTING STARTED", а публичная запись в блоге на главной странице раскрывает точное название и версию плагина открытым текстом: "Simple Backup Plugin 2.7.10 for WordPress" — для фингерпринтинга уязвимого компонента даже не потребовались инструменты перечисления.