
CVE-2023-27372를 위한 안전한 PoC 스캐너 및 Docker 랩입니다. SPIP CMS 4.2.1 이전 버전의 RCE입니다. 비밀번호 복구 엔드포인트를 통해 파괴적인 작업 없이 취약점을 확인합니다.
이 저장소는 다음을 포함합니다:
stand/ — Docker 기반 실험실 환경(취약 환경): SPIP + MariaDB.poc/ — Python으로 작성된 검사 도구(scanner)로, 파괴적인 행위 없이 취약점의 안전한 확인(Safe PoC)을 구현합니다.이 프로젝트는 SPIP 4.2.1 이전 버전의 CVE-2023-27372 취약점을 시연하고 분석하기 위해 설계되었습니다. 검사는 비밀번호 복구 기능(엔드포인트 spip.php?page=spip_pass)을 통해 수행되며, 실험실 환경에서 안전한 명령을 실행하여 확인됩니다.
.
├── stand/ # 취약한 실험실 환경 (SPIP + MariaDB) on Docker Compose
│ ├── docker-compose.yml
│ └── ... (Dockerfile/실험실 스크립트, 지속 볼륨 등)
└── poc/ # Safe PoC scanner (Python)
├── Dockerfile
├── README.md # (선택 사항) PoC 로컬 문서
└── src/
├── scanner.py
├── utils.py
└── pyproject.toml
cd stand
docker compose up -d
docker compose ps
서비스는 다음 주소에서 접근 가능합니다:
http://127.0.0.1:8080/http://127.0.0.1:8080/spip.php?page=loginpoc/ 디렉토리로 이동하여 스캐너의 Docker 이미지를 빌드하세요:
cd ../poc
# Если в вашей среде бывают проблемы с DNS во время сборки, используйте:
docker build --network=host -t spip-poc-scanner .
DNS 문제가 없다면 일반 명령어로:
docker build -t spip-poc-scanner .
로컬 실험실 환경에 권장되는 실행 방법:
docker run --rm --network="host" \
-v "$(pwd)":/app/out \
spip-poc-scanner \
-i http://127.0.0.1:8080 \
-o /app/out/results.json
실행 후 results.json (예시 구조)가 생성됩니다:
[
{
"ip": "http://127.0.0.1:8080",
"vuln": true
}
]
PoC 구현이 파일 생성(예: /tmp/pwned.txt)을 통해 실행을 확인하는 경우, 웹 컨테이너 내부에서 이를 확인할 수 있습니다.
컨테이너 이름을 하드코딩하지 않는 방법:
cd ../stand
WEB_CID="$(docker compose ps -q web)"
docker exec "$WEB_CID" ls -l /tmp/pwned.txt
파일이 존재한다면, 이는 실험실 환경에서 명령 실행 가능성을 확인합니다.
pip으로 설치되는 경우)spip.php?page=spip_passdocker build 중 Temporary failure in name resolution호스트 네트워크를 사용하여 빌드하세요:
docker build --network=host -t spip-poc-scanner .
중지하고 볼륨을 삭제하세요:
cd stand
docker compose down -v
docker compose up -d
이 프로젝트는 오직 교육 목적과 자신의 실험실 환경에서의 합법적인 테스트를 위해 만들어졌습니다. 저자는 허가되지 않은 사용에 대해 책임을 지지 않습니다.
---::contentReference[oaicite:0]{index=0}