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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-8110-gogs-poc — PoC for CVE-2025-8110 - 심볼릭 링크를 통한 Gogs 임의 파일 쓰기 | Kitploit
도구/GitHubGitHub/shirouuu/cve-2025-8110-gogs-poc
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubshirouuu/cve-2025-8110-gogs-poc

CVE-2025-8110-gogs-poc

PoC for CVE-2025-8110 - 심볼릭 링크를 통한 Gogs 임의 파일 쓰기

저장소 보기
51개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-8110 — Gogs 임의 파일 쓰기 (PoC)

인증된 사용자가 Gogs에서 임의 파일을 쓸 수 있는 개념 증명(PoC)입니다. 저장소 외부를 가리키는 심볼릭 링크가 포함된 저장소를 푸시한 다음 API를 통해 해당 링크의 내용을 업데이트하면, 인증된 사용자가 Gogs를 실행 중인 계정의 권한으로 호스트의 파일을 덮어쓸 수 있습니다.

승인된 테스트 및 교육용으로만 사용하세요. 소유한 시스템이나 명시적인 서면 승인을 받은 시스템에서만 실행하세요. 사용으로 인한 책임은 본인에게 있습니다.

작동 방식

  1. 기존 계정으로 Gogs에 인증합니다.
  2. 사용자 설정에서 애플리케이션(API) 토큰을 생성합니다.
  3. 저장소를 생성합니다.
  4. 심볼릭 링크(malicious_link -> /path/on/host)를 추가하고 푸시합니다.
  5. Contents API에 PUT을 보내 malicious_link를 업데이트합니다. Gogs는 심볼릭 링크를 따라가 제공된 콘텐츠를 자체 권한으로 대상 경로에 씁니다. Gogs가 root로 실행 중이면 이는 직접적인 권한 상승 수단이 됩니다(예: /etc/sudoers.d/에 규칙을 넣는 경우).

실제로 쓰기를 트리거하는 것은 API PUT이며, 푸시는 심볼릭 링크를 배치할 뿐입니다.

요구 사항

  • Python 3.8+
  • git이 PATH에 있어야 합니다
  • 기존 Gogs 계정 (대상에서 회원가입이 비활성화되어 있을 수 있음)
root@kitploit:~
pip install -r requirements.txt

사용법

root@kitploit:~
python3 exploit.py \
    -u http://127.0.0.1:3000 \
    --user <username> \
    --password '<password>' \
    --target /etc/sudoers.d/pwned \
    --payload '<username> ALL=(ALL) NOPASSWD: ALL'

--password를 생략하면 명령줄에 전달하는 대신 안전하게 프롬프트로 입력받습니다.

내부 Gogs 인스턴스에 연결하기

Gogs는 대상에서 종종 localhost에 바인딩됩니다. SSH 로컬 포트 포워딩을 사용하여 자신의 머신으로 노출하세요(대상에 맞게 포트를 조정).

root@kitploit:~
ssh -L 3000:127.0.0.1:3000 user@target
# then point the exploit at http://127.0.0.1:3000

쓰기 확인

실행에 성공한 후 호스트에서(해당 사용자로) 확인합니다:

root@kitploit:~
cat /etc/sudoers.d/pwned
sudo -l

sudoers 규칙을 작성한 경우, /etc/sudoers.d/의 파일은 유효하고 sudo가 인식하도록 적절한 권한을 가져야 합니다.

참고 사항 / 문제 해결

  • auto_init이 HTTP 500을 반환 — 스크립트는 빈 저장소를 생성하고 로컬 git init + push로 채우는 방식으로 대체합니다.
  • 푸시 거부됨(non-fast-forward) — 스크립트는 원격과 조정한 후 재시도하며, master와 main도 처리합니다.
  • CSRF 토큰을 찾을 수 없음 — 일반적으로 대상/포트가 잘못되었거나(다른 서비스를 가리키는 경우) 세션이 인증되지 않았음을 의미합니다.

완화 조치

Contents API에서 심볼릭 링크를 검증하는 Gogs 릴리스로 업그레이드하세요. 심층 방어 차원에서 Gogs를 root로 실행하지 말고 저장소 스토리지를 분리하세요.

라이선스

MIT — LICENSE 참조.

도구 다운로드