
CVE-2022-36804용 Python 익스플로잇으로, 조작된 아카이브 요청을 통해 취약한 Bitbucket Server/Data Center에서 원격 명령 실행 및 파일 전송을 가능하게 합니다.
이 저장소에는 Atlassian Bitbucket Server/Data Center 취약점 CVE-2022-36804를 위한 Python 익스플로잇 스크립트가 포함되어 있습니다. 이 문제는 Git 아카이브 흐름에서 발생하는 명령 삽입 결함으로, 조작된 prefix 매개변수가 서버에 의해 해석되어 셸 명령으로 실행될 수 있습니다.
CVE-2022-36804는 Bitbucket Server/Data Center 원격 명령 실행 취약점입니다. 이 취약점은 아카이브 엔드포인트에서 prefix 값을 안전하지 않게 처리하여 공격자가 제어하는 데이터가 Git을 통해 셸 호출에 도달할 수 있게 한 데서 발생했습니다. 그 결과 경로와 배포 모델에 따라 인증되지 않거나 인증된 명령 실행이 가능해집니다.
이 스크립트는 취약한 아카이브 엔드포인트를 대상으로 하며, 조작된 요청을 사용하여 주입을 트리거합니다.
이 PoC는 Atlassian의 CVE-2022-36804 권고에 해당하는 영향을 받는 Bitbucket Server/Data Center 빌드를 대상으로 합니다. 실제로 취약 범위에는 Atlassian이 나열한 수정 버전 이전의 구형 7.x/8.x Bitbucket Server/Data Center 릴리스가 포함됩니다. 패치되었거나 업그레이드된 빌드에는 사용할 수 없습니다.
소유한 시스템이나 명시적으로 테스트 권한이 부여된 시스템에서만 사용하십시오.
이 스크립트는 다음 엔드포인트로 요청을 보냅니다:
/rest/api/latest/projects/{project}/repos/{repo}/archive
그리고 다음과 같은 특수하게 조작된 prefix 매개변수를 사용합니다:
ax%00--exec=`<command>`%00--remote=origin
핵심은 널 바이트 / Git 명령 경로를 악용하여 서버가 아카이브 요청에서 셸 명령을 실행하게 만드는 것입니다. 이 스크립트는 필요한 경우 명령을 gzip + base64로 감싸서 출력이 간결하게 반환되고 로컬에서 디코딩되도록 합니다.
이 스크립트는 두 가지 주요 모드를 지원합니다:
python cve-2022-36804_v5.py <url> <username> <password> -p <project> -r <repo> -c "whoami"
옵션:
-c, --command: 명령 실행--no-encode: gzip+base64 래핑 없이 원시 명령 전송-p, --project: Bitbucket 프로젝트 키-r, --repo: Bitbucket 저장소 슬러그python cve-2022-36804_v5.py <url> <username> <password> -p <project> -r <repo> -f /path/to/local.bin -o /tmp/remote.bin
이 명령은 로컬 파일을 청크 단위로 읽고 각 청크를 base64로 인코딩한 다음, 익스플로잇을 사용하여 서버의 대상 경로에 파일을 재구성합니다.
requests.Session을 사용합니다.verify = False).이 도구는 승인된 보안 연구 및 통제된 테스트 전용입니다. 소유하지 않았거나 테스트 권한이 없는 시스템에 이 도구를 사용하는 것은 불법이며 비윤리적입니다.