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

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

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, с проверкой эксплуатации, скриптом обнаружения и устранением последствий через сетевую изоляцию.

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

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)

root@kitploit:~
┌─────────────────────────────────────────────────────────┐
│                    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)

root@kitploit:~
┌─────────────────────────┐        ┌─────────────────────────┐
│       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 и зависимостей:

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip install requests fpdf2

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

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

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

root@kitploit:~
docker compose up -d

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

root@kitploit:~
docker compose ps

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

root@kitploit:~
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

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

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

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

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

root@kitploit:~
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. Запуск инструмента защитного обнаружения

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

root@kitploit:~
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. Переключение на исправленную лабораторию и проверка защиты

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

root@kitploit:~
docker compose down
docker compose -f docker-compose.patched.yml up -d
python3 scripts/verify_vulnerability.py

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

root@kitploit:~
==============================================================
[✓] 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.
==============================================================

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

root@kitploit:~
docker compose -f docker-compose.patched.yml down

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

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

АртефактНазначениеСсылка на файлОписание
Скриншот 1Среда запущена01_lab_running.pngПоказывает vulnerable-request-baskets (порт 55556) и isolated-internal-service, работающие одновременно в lab-net.
Скриншот 2Эксплуатация SSRF02_reproduction_ssrf.pngОтображает эксфильтрированный флаг CONFIDENTIAL_DATA{...} и статус VULNERABLE.
Скриншот 3Инструмент защитного обнаружения03_detection_tool_run.pngОтображает двухфазную проверку сигнатур и аудит loopback с пометкой VULNERABLE.
Скриншот 4Проверка устранения04_remediation_verified.pngДоказывает сбой ретрансляции (HTTP 502 / Host Unreachable) при сегментированной сетевой защите.
Скриншот 5Конфигурация веб-интерфейса05_web_ui_ssrf.png(Бонус) Снимок браузера настроек интерфейса Request-Baskets с включённым Proxy Response.

Подробные пошаговые руководства, команды и консольные расшифровки для каждого скриншота задокументированы в evidence/README.md.

Интерактивный запуск захвата

Чтобы последовательно захватить все скриншоты терминала без ручной настройки, запустите:

root@kitploit:~
./scripts/capture_evidence_flow.sh

Компиляция PDF технического блога

Скомпилируйте академический технический отчёт в PDF:

root@kitploit:~
python3 docs/generate_blog_pdf.py

Сгенерированный вывод: docs/CVE-2023-27163-Technical-Blog.pdf


Структура проекта

root@kitploit:~
cve-2023-27163-lab/
├── .gitignore                      # Git artifact exclusions (.venv, cache, OS files)
├── docker-compose.yml              # Vulnerable environment (shared lab-net, port 55556)
├── docker-compose.patched.yml      # Remediated environment (disjoint network isolation)
├── README.md                       # Complete documentation, attribution & guide
├── scripts/
│   ├── capture_evidence_flow.sh    # Interactive runner for capturing screenshots
│   ├── verify_vulnerability.py     # SSRF exploitation & remediation verification CLI
│   └── detect.py                   # Defensive audit and detection tool
├── evidence/
│   └── README.md                   # Formal screenshot evidence walkthrough
└── docs/
    ├── technical_blog.md           # Academic technical write-up (800–1,200 words)
    ├── generate_blog_pdf.py        # Markdown → PDF converter
    └── CVE-2023-27163-Technical-Blog.pdf # Compiled academic report PDF

Ссылки и благодарности

Это исследование и разработка лаборатории опираются на открытые стандарты безопасности, рекомендации производителей и базы данных уязвимостей:

  1. NIST National Vulnerability Database (NVD):
    CVE-2023-27163 Detail — CVSS v3.1 Base Score 6.5 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N).
  2. MITRE Common Weakness Enumeration (CWE):
    CWE-918: Server-Side Request Forgery (SSRF).
  3. Репозиторий и исходный код upstream-проекта:
    darklynx/request-baskets (GitHub) — веб-сервис Request Baskets.
  4. OWASP Foundation:
    Server-Side Request Forgery Prevention Cheat Sheet.

Отказ от ответственности

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

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