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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-31218-WEBHOOD-LAB — Docker 기반 랩으로, Webhood의 인증되지 않은 PocketBase 관리자 생성 취약점인 CVE-2024-31218을 재현하며, PoC, 탐지, 그리고 완화 검증을 포함합니다. | Kitploit
도구/GitHubGitHub/chandrimanath04-hue/cve-2024-31218-webhood-lab
Vulnerability AnalysisExploitationWeb SecurityPenetration TestingAuthenticationLearning & EducationLabs & Practice
GitHubchandrimanath04-hue/cve-2024-31218-webhood-lab

CVE-2024-31218-WEBHOOD-LAB

Docker 기반 랩으로, Webhood의 인증되지 않은 PocketBase 관리자 생성 취약점인 CVE-2024-31218을 재현하며, PoC, 탐지, 그리고 완화 검증을 포함합니다.

저장소 보기
17시간 12분 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2024-31218 — Webhood / PocketBase 인증 우회 실습

개요

이 프로젝트는 CVE-2024-31218에 대한 통제된 보안 연구 및 취약점 재현 실습으로, Webhood 0.9.1 이전 버전에 영향을 미치는 치명적인 인증 취약점입니다.

이 취약점은 관리자 계정이 존재하지 않을 때 PocketBase 관리자 계정이 인증 없이 생성되는 것과 관련이 있습니다. 영향을 받는 API에 접근할 수 있는 공격자는 사전 인증 없이 관리자 계정을 생성할 수 있습니다.

이 실습의 목표는 다음과 같습니다:

  • CVE-2024-31218 연구
  • 근본 원인과 공격 표면 이해
  • 격리된 환경에서 취약점 재현
  • 취약한 동작의 탐지 시연
  • 취약 및 패치된 구성 문서화
  • 완화 및 검증 설명
  • 재현 가능한 Docker 기반 실습 아티팩트 제공

안전: 이 프로젝트는 격리된 로컬 실습 환경에서만 사용하도록 의도되었습니다. 취약한 애플리케이션은 절대 공용 인터넷에 노출되거나 승인 없이 시스템에 사용되어서는 안 됩니다.


1. 취약점 정보

필드세부 정보
CVECVE-2024-31218
프로젝트Webhood
영향받는 버전Webhood <= 0.9.0
수정된 버전Webhood 0.9.1
심각도치명적
CVSS v3.19.8
CWECWE-306 — 중요 기능에 대한 인증 누락
공격 벡터네트워크
공격 복잡도낮음
필요한 권한없음
사용자 상호작용없음
기밀성높음
무결성높음
가용성높음

CVSS 벡터

root@kitploit:~
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
2. 취약점 설명

CVE-2024-31218은 영향을 받는 Webhood/PocketBase 애플리케이션에서 관리자 생성에 대한 불충분한 인증 보호로 인해 발생합니다.

애플리케이션에 구성된 관리자 계정이 없을 때, 관리자 생성 기능에 인증 없이 접근할 수 있습니다.

따라서 영향을 받는 API에 접근할 수 있는 공격자는 첫 번째 관리자 계정을 생성하려고 시도할 수 있습니다.

성공적인 악용은 애플리케이션에 대한 관리자 접근 권한을 초래할 수 있습니다.

이 취약점은 다음과 같이 분류됩니다:

CWE-306: 중요 기능에 대한 인증 누락
3. 영향받는 버전 및 수정된 버전

취약한 범위는 다음과 같습니다:

Webhood <= 0.9.0

취약점은 다음에서 수정되었습니다:

Webhood 0.9.1

따라서 완화 검증에는 패치된 버전을 사용해야 합니다.

4. 공격 표면

관련 공격 표면은 PocketBase 관리자 API입니다.

취약한 기능은 관리자 계정 생성과 관련이 있습니다.

개념적으로 공격 흐름은 다음과 같습니다:

공격자
   |
   | HTTP 요청
   v
Webhood / PocketBase API
   |
   | 관리자 생성 엔드포인트
   v
관리자 계정 생성
   |
   v
비인가 관리자 접근

이 공격은 취약한 초기 관리자 조건이 존재할 때 기존 인증된 세션을 필요로 하지 않습니다.

5. 근본 원인

근본 원인은 인증 제어 실패입니다.

관리자 계정이 존재하지 않을 때 관리자 생성 기능이 접근을 충분히 제한하지 않았습니다.

보안 경계는 권한 있는 관리자 기능이 인증되지 않은 원격 클라이언트에 의해 악용될 수 없도록 보장해야 합니다.

따라서 취약한 동작은 보안에 민감한 작업에 대한 인증 검사 누락을 나타냅니다.

6. 통제된 실습 아키텍처

실습은 CVE-2024-31218의 기반이 되는 PocketBase 관리자 API 동작을 재현합니다.

Docker 환경은 완전한 Webhood 0.9.0 애플리케이션을 패키징한다고 주장하는 대신 PocketBase 구성 요소를 직접 사용합니다.

실습 아키텍처는 다음과 같습니다:

+-------------------------+
|       호스트 머신       |
|                         |
|  PowerShell / Python    |
+------------+------------+
             |
             | 127.0.0.1:8090
             v
+-------------------------+
|     Docker 컨테이너     |
|                         |
|  +-------------------+  |
|  |    PocketBase     |  |
|  | 관리자 API        |  |
|  +-------------------+  |
|                         |
+-------------------------+

서비스는 localhost에만 바인딩되며 공용 인터넷에 노출되지 않습니다.

재현 중 사용되는 모든 자격 증명은 합성 실습 자격 증명입니다.

7. 저장소 구조
CVE-2024-31218-WEBHOOD-LAB/
│
├── README.md
│
├── vulnerable/
│   ├── Dockerfile
│   └── docker-compose.yml
│
├── exploit/
│   └── reproduce.py
│
├── detection/
│   └── detect.py
│
├── patched/
│   └── README.md
│
├── evidence/
│   └── README.md
│
└── blog/
    └── CVE-2024-31218-Technical-Blog.pdf

8. 취약한 환경

취약한 환경은 격리된 Docker 컨테이너에서 CVE-2024-31218과 관련된 PocketBase 관리자 API 동작을 재현하도록 설계되었습니다.

실습은 완전한 Webhood 0.9.0 애플리케이션을 재현한다고 주장하는 대신 영향을 받는 구성 요소로 PocketBase를 직접 사용합니다.

Docker 구성은 다음을 수행합니다:

- 실습 환경을 빌드합니다.
- PocketBase를 로컬에서 시작합니다.
- 서비스를 localhost에 바인딩합니다.
- 서비스를 외부 시스템으로부터 격리합니다.
- 테스트를 위한 재현 가능한 환경을 제공합니다.
- 재현 스크립트가 관리자 API와 상호작용할 수 있도록 합니다.

현재 실습은 합성 관리자 계정을 사용하며 실제 사용자 데이터나 자격 증명을 포함하지 않습니다.

9. 재현 방법론

재현 절차는 로컬 실습 전용으로 설계되었습니다.

1단계 — 취약한 컨테이너 시작
docker compose up --build
2단계 — 서비스 확인

구성 요소 수준 실습에 사용되는 PocketBase 서비스가 로컬에서 응답하는지 확인합니다.

3단계 — 통제된 재현 스크립트 실행

재현 스크립트는 로컬 취약 인스턴스에 관련 요청을 전송합니다.

예:

python exploit/reproduce.py
4단계 — 응답 관찰

응답은 애플리케이션이 인증되지 않은 관리자 생성 요청을 수락하는지 여부를 보여주어야 합니다.

5단계 — 결과 상태 확인

실습은 관리자 계정이 생성되었는지 확인해야 합니다.

외부 대상은 절대 사용되어서는 안 됩니다.

10. 탐지

탐지는 비인가 관리자 생성 시도와 관련된 지표를 식별해야 합니다.

잠재적 지표는 다음과 같습니다:

관리자 생성 기능에 대한 요청
관리자 엔드포인트에 대한 인증되지 않은 요청
예상치 못한 첫 번째 관리자 계정 생성
예상치 못한 클라이언트에서 발생한 HTTP 요청
반복적인 관리자 생성 시도
애플리케이션 초기화 직후 관리자 계정 생성

탐지 스크립트는 다음 위치에 있습니다:

detection/detect.py

11. 완화

주요 완화 방법은 Webhood를 수정된 버전으로 업그레이드하는 것입니다:

Webhood 0.9.1

취약한 릴리스는 프로덕션에서 사용되어서는 안 됩니다.

문서화된 우회 방법은 즉시 업그레이드를 수행할 수 없는 경우 영향을 받는 관리자 API 기능에 대한 접근을 제한하는 것입니다.

완화 후:

취약한 컨테이너를 중지합니다.
취약한 버전을 수정된 버전으로 교체합니다.
컨테이너를 다시 빌드합니다.
패치된 환경을 시작합니다.
재현 시도를 반복합니다.
취약한 동작이 더 이상 불가능한지 확인합니다.
예상치 못한 관리자 요청에 대해 애플리케이션 로그를 검토합니다.

12. 완화 및 검증

CVE-2024-31218에 대한 공식 Webhood 수정은 실제 Webhood `v0.9.1` 소스 릴리스를 사용하여 검증되었습니다.

수정 커밋은 다음과 같습니다:

`735e7fa2814edeec9a2c07778ed51b3c018609f9`

수정은 다음 마이그레이션을 추가합니다:

`src/backend/migrations/1712252550_generate_random_admin.js`

마이그레이션은 관리자가 이미 존재하는지 확인합니다. 관리자가 존재하지 않으면 무작위로 생성된 비밀번호로 관리자 계정을 생성합니다. 이는 인증되지 않은 요청자가 노출된 `/api/admins` 엔드포인트를 통해 첫 번째 관리자를 차지하는 것을 방지합니다.

#### 검증 절차

1. 공식 Webhood `v0.9.1` 소스 태그를 체크아웃했습니다.
2. Dockerfile을 사용하여 공식 소스에서 백엔드를 로컬로 빌드했습니다.
3. 결과 이미지를 localhost의 포트 `8091`에서 실행했습니다.
4. 취약한 실습에 사용된 것과 동일한 인증되지 않은 관리자 생성 요청을 수정된 백엔드에 재전송했습니다.
5. 취약한 환경은 이전에 HTTP `200`으로 요청을 수락했습니다.
6. 수정된 `v0.9.1` 백엔드는 동일한 요청을 HTTP `401`로 거부했습니다.

관찰된 수정 환경 응답:

```text
HTTP status: 401
{"code":401,"message":"The request requires valid admin authorization token to be set.","data":{}}

이는 이전에 시연된 인증되지 않은 관리자 생성 공격 경로가 로컬로 빌드된 Webhood v0.9.1 백엔드에서 차단되었음을 확인합니다.

완화 검증됨: 예

증거:

evidence/05-remediation-verified.png

13. 보안 영향

성공적인 악용은 비인가 당사자에게 관리자 권한을 제공할 수 있습니다.

잠재적 결과는 다음과 같습니다:

비인가 관리자 접근
애플리케이션 데이터 수정
애플리케이션 정보 노출
레코드 수정 또는 삭제
애플리케이션의 추가 관리자 악용

따라서 심각도는 발표된 CVSS 평가에 따라 치명적으로 분류됩니다.

14. 증거

evidence/ 디렉터리는 다음을 보여주는 스크린샷을 포함하도록 의도되었습니다:

취약한 애플리케이션 시작
Docker 컨테이너 상태
취약한 버전
재현 요청
성공적인 취약한 동작
탐지 출력
패치된 버전
완화 후 실패/차단된 재현

스크린샷에는 실제 자격 증명, 개인 정보, API 키 또는 기타 민감한 데이터가 포함되어서는 안 됩니다.

15. 제한 사항

이 실습을 준비하는 동안 로컬 Windows 환경에서 Docker Linux 백엔드를 시작하는 데 문제가 발생했습니다.

Windows는 다음을 반환했습니다:

Error: 14098
The component store has been corrupted.

필요한 Windows 기능도 처음에는 비활성화되어 있었습니다:

VirtualMachinePlatform
Microsoft-Windows-Subsystem-Linux

따라서 모든 재현 결과 또는 스크린샷은 다음을 정확히 구분해야 합니다:

취약점 연구
실습 구성
의도된 재현 절차
성공적으로 실행된 재현

격리된 실습에서 실제로 수행되지 않은 한 성공적인 익스플로잇 실행을 주장해서는 안 됩니다.

16. 안전 고려 사항

이 프로젝트는 승인된 보안 연구 전용입니다.

실습은 다음을 수행해야 합니다:

로컬에서 실행.
공용 노출 회피.
실제 자격 증명 회피.
실제 사용자 데이터 회피.
제3자 시스템에 대한 테스트 회피.
일회용 테스트 계정 사용.
격리된 Docker 네트워크 사용.
테스트 후 취약한 환경 파괴.

정리 예:

docker compose down
17. 참고 자료
National Vulnerability Database — CVE-2024-31218
Webhood 보안 권고
Webhood/PocketBase 소스 저장소
CVE-2024-31218과 관련된 수정 커밋
CWE-306 — 중요 기능에 대한 인증 누락
FIRST CVSS v3.1 사양
18. 면책 조항

이 저장소는 사이버 보안 교육 및 취약점 연구 프로젝트입니다.

취약한 구성은 통제된 테스트를 위해 의도적으로 재현되었습니다. 공개적으로 접근 가능한 서비스로 배포되어서는 안 됩니다.

저자는 이 저장소에 포함된 기술이나 아티팩트의 비인가 사용에 대해 어떠한 책임도 지지 않습니다.
도구 다운로드