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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2023-27163-lab — Лаборатория на базе Docker, воспроизводящая SSRF CVE-2023-27163 в Request-Baskets, с проверкой эксплуатации, скриптом обнаружения и устранением последствий через сетевую изоляцию. | Kitploit
Инструменты/GitHubGitHub/amulyakaushik/cve-2023-27163-lab
Оборонительные ИнструментыБезопасность контейнеровАнализ уязвимостейЭксплуатацияВеб-безопасностьСетевая безопасностьТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика

Популярное

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

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

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

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

Смотреть все инструменты →
GitHubamulyakaushik/cve-2023-27163-lab

CVE-2023-27163-lab

Лаборатория на базе Docker, воспроизводящая SSRF CVE-2023-27163 в Request-Baskets, с проверкой эксплуатации, скриптом обнаружения и устранением последствий через сетевую изоляцию.

Репозиторий
2221 дней назадЕщё не проверено
Поделиться

CVE-2023-27163 — Лаборатория SSRF в Request-Baskets

Проект: Лаборатория исследования и воспроизведения уязвимостей — CVE-2023-27163
Автор: Amulya Kaushik
Роль: Кандидат на стажировку в области кибербезопасности R&D и разработки лабораторного контента

Server-Side Request Forgery в Request-Baskets ≤ 1.2.1
Автономная локальная исследовательская лаборатория для воспроизведения, обнаружения и устранения CVE-2023-27163 с архитектурой эшелонированной защиты.


Профиль CVE

ПолеЗначение
CVE IDCVE-2023-27163
CWECWE-918 — Server-Side Request Forgery (SSRF)
Затронутый продуктRequest-Baskets
Затронутые версии≤ 1.2.1
Исправленная версия1.2.2 (Upstream source) / Defense-in-Depth Network Isolation
Оценка CVSS v3.16.5 (Medium)
Вектор CVSSAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Сложность атакиНизкая — один неаутентифицированный вызов API

Ограничения upstream и стратегия устранения

Примечание об ограничениях upstream и устранении:
Хотя CVE-2023-27163 отслеживает проверку произвольного forward URL, публичные сборки контейнера darklynx/request-baskets не применяют фильтрацию loopback или частных подсетей из коробки. Следуя реальным лучшим практикам DevSecOps, наша лаборатория демонстрирует устранение через Defense-in-Depth Container Network Isolation. Изолируя чувствительные внутренние бэкенды в внутренней Docker-сети (secure-internal-net с internal: true), путь ретрансляции разрывается, что снижает эксплуатируемость уязвимости SSRF даже при запуске недоверенных пересыльщиков вебхуков.


Обзор архитектуры лаборатории

Эта лаборатория предоставляет две отдельные топологии Docker Compose:

  1. Уязвимая конфигурация (docker-compose.yml): Request-Baskets и внутренний сервис эхо-секретов совместно используют bridge-сеть lab-net. Request-Baskets сопоставлен с портом хоста 55556 (сопоставлен с портом контейнера 55555).
  2. Исправленная конфигурация (docker-compose.patched.yml): Request-Baskets подключён исключительно к public-net, тогда как внутренний сервис эхо подключён к secure-internal-net (internal: true).

Уязвимая архитектура (docker-compose.yml)

┌─────────────────────────────────────────────────────────┐
│                    Docker: lab-net                       │
│                                                         │
│  ┌─────────────────────┐    ┌────────────────────────┐  │
│  │  request-baskets     │───▶│  internal-service      │  │
│  │  (v1.2.1)           │    │  (http-echo:5678)      │  │
│  │  Port 55556 ◀──HOST │    │  NOT exposed to host   │  │
│  └─────────────────────┘    └────────────────────────┘  │
└─────────────────────────────────────────────────────────┘
         ▲
         │  HTTP (port 55556)
         │
    ┌────┴─────┐
    │ Attacker │
    └──────────┘

Исправленная архитектура (docker-compose.patched.yml)

┌─────────────────────────┐        ┌─────────────────────────┐
│       public-net        │        │   secure-internal-net   │
│                         │        │     (internal: true)    │
│  ┌───────────────────┐  │        │  ┌───────────────────┐  │
│  │  request-baskets   │  │   ✕    │  │ internal-service  │  │
│  │  Port 55556◀─HOST │  │ ──/──▶ │  │ (http-echo:5678) │  │
│  └───────────────────┘  │        │  └───────────────────┘  │
└─────────────────────────┘        └─────────────────────────┘

Предварительные требования

ТребованиеМинимальная версияПримечания
Docker Engine20.10+Среда виртуализации контейнеров
Docker Composev2.0+Оркестрация нескольких контейнеров
Python3.8+Инструменты CLI-проверки и обнаружения

Настройка виртуального окружения Python и зависимостей:

python3 -m venv .venv
source .venv/bin/activate
pip install requests fpdf2

Пошаговые инструкции

1. Запуск уязвимой лабораторной среды

Запустите уязвимую среду (Request-Baskets v1.2.1 доступен по адресу http://localhost:55556):

docker compose up -d

Убедитесь, что оба контейнера запущены:

docker compose ps

Ожидаемый вывод:

NAME                         IMAGE                             COMMAND                  SERVICE            STATUS   PORTS
isolated-internal-service    hashicorp/http-echo:latest        "/http-echo -text=CO…"   internal-service   Up       5678/tcp
vulnerable-request-baskets   darklynx/request-baskets:v1.2.1   "/bin/sh -c /bin/ent…"   request-baskets    Up       0.0.0.0:55556->55555/tcp

Убедитесь, что внутренний сервис не доступен напрямую с хоста:

curl http://localhost:5678 2>&1 || echo "Connection refused — internal service isolated as expected"

2. Выполнение воспроизведения уязвимости (эксфильтрация данных)

Запустите автоматизированный скрипт проверки SSRF:

python3 scripts/verify_vulnerability.py

Что происходит:

  1. Инструмент вызывает /api/baskets/ssrf-verification-basket, устанавливая forward_url: "http://internal-service:5678" и proxy_response: true.
  2. Он отправляет HTTP GET на URL корзины.
  3. Он захватывает ретранслированную полезную нагрузку CONFIDENTIAL_DATA{INTERNAL_SSRF_DEMONSTRATION_SUCCESS} и выводит RESULT: VULNERABLE.
  4. Он удаляет тестовую корзину.

3. Запуск инструмента защитного обнаружения

Запустите недеструктивный аудиторский зонд:

python3 scripts/detect.py

Что происходит:

  1. Фаза 1: Сопоставление веб-сигнатур Request-Baskets.
  2. Фаза 2: Проверка того, принимается ли пересылка loopback (http://127.0.0.1:80).
  3. Фаза 3: Сообщает AUDIT RESULT: VULNERABLE при принятии (HTTP 201) и очищает зонд-корзину.

4. Переключение на исправленную лабораторию и проверка защиты

Переключитесь на сегментированную исправленную топологию:

docker compose down
docker compose -f docker-compose.patched.yml up -d
python3 scripts/verify_vulnerability.py

Ожидаемый вывод:

==============================================================
[✓] REMEDIATION VERIFIED: TARGET SECURED
    The Request-Baskets instance failed to reach the internal
    isolated service (HTTP 502 / Host Unreachable).
    Network segmentation successfully prevented SSRF data exfiltration.
==============================================================

Сверните среду по завершении:

docker compose -f docker-compose.patched.yml down

Доказательства и проверка (Deliverable 3)

Полный портфель визуальных доказательств для Deliverable 3 поддерживается в каталоге evidence/:

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