
SCM Manager 1.2 <= 1.60의 저장형 XSS에 대한 개념 증명(PoC)
SCM Manager 1.2 <= 1.60 버전에서 취약점이 발견되었습니다. 이 취약점으로 인해 쓰기 권한으로 사전 인증된 공격자가 특정 필드에서 javascript 코드를 실행할 수 있습니다.
이 개념 증명(PoC)은 docker를 사용하여 SCM Manager 1.60을 로컬 환경에 배포하여 만들어졌습니다.
1 - Git clone the repository
2 - Make sure that you are into the repository
3 - pip3 install -r requirements.txt
4 - python3 CVE-2023-33829.py -h
이 bash 스크립트를 script.sh 파일에 복사하여 붙여넣고, 실행 권한을 부여한 다음 파일을 실행하세요:
#!/bin/bash
mkdir /var/lib/scm
chown 1000:1000 /var/lib/scm
docker run -v /var/lib/scm:/var/lib/scm -p 8080:8080 sdorra/scm-manager
이 스크립트는 sdorra가 작성했으며, 공식 링크는 다음과 같습니다: https://bitbucket.org/sdorra/docker-scm-manager/src/master/
참고: 사전에 docker를 설치해야 합니다.
SCM Manager 1.60을 설치하면 사용자 이름과 비밀번호를 요청합니다:
사용자 이름 : scmadmin 비밀번호: scmadmin
개념 증명:

2- 어떤 유형이든 새 저장소를 생성하되, Description 필드가 취약하므로 페이로드를 주입하면 트리거됩니다:

3- 새 사용자를 생성하고, 특정 취약 필드는 Display Name이므로 앞서 소개한 페이로드를 주입합니다:

4- 새 그룹을 생성하고, 특정 취약 필드는 Description이므로 페이로드를 주입합니다:

사용된 페이로드:
SCM Manager의 새 버전은 수정되었습니다.