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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
gitlab-cve-2020-10977 — GitLab 임의 파일 읽기 익스플로잇 | Kitploit
도구/GitHubGitHub/vandycknick/gitlab-cve-2020-10977
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed TeamingPayload Development
GitHubvandycknick/gitlab-cve-2020-10977

gitlab-cve-2020-10977

GitLab 임의 파일 읽기 익스플로잇

저장소 보기
225년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

GitLab CVE2020-10977

소개

이 스크립트는 GitLab Community Edition(CE) 및 Enterprise Edition(EE)에 대해 원격 코드 실행을 제공합니다. 이 CVE는 임의 파일 읽기로, GitLab secrets.yaml 파일을 다운로드하여 Rails secret_key_base를 추출할 수 있게 합니다. 이를 통해 GitLab이 내부적으로 A/B 테스트에 사용하는 experimentation_subject_id 쿠키를 직접 서명하여 코드 실행을 얻을 수 있습니다. 쿠키에 포함된 페이로드에는 GitLab 인스턴스에서 코드를 실행할 수 있게 하는 역직렬화 취약점이 포함되어 있습니다.

임의 파일 읽기 취약점은 GitLab EE/CE 8.5 이상에 존재합니다. 이는 12.9.1, 12.8.8 및 12.7.8에서 수정되었습니다. 그러나 RCE는 취약한 experimentation_subject_id 쿠키가 도입된 버전 12.4.0 이상에만 영향을 미칩니다.

12.8.1에서 테스트됨

사용법

이 모듈은 python 3.9로 테스트되었으며 다음 종속성이 필요합니다:

  • requests
  • beautifulsoup4

pipenv가 설치되어 있다면 pipenv install 및 pipenv shell을 실행하여 pipenv 가상 환경에서 셸을 빠르게 시작할 수 있습니다.

root@kitploit:~
 $ ./cve_2020_10977.py --help

usage: cve_2020_10977.py [-h] --url URL -u USERNAME -p PASSWORD [--cmd CMD]

optional arguments:
  -h, --help            show this help message and exit
  --url URL             Target URL
  -u USERNAME, --username USERNAME
                        Gitlab username
  -p PASSWORD, --password PASSWORD
                        Gitlab password
  --cmd CMD             Command to execute

개발

로컬 개발이나 익스플로잇 테스트를 용이하게 하기 위해 Makefile이 포함되어 있습니다. 이 CVE에 취약한 로컬 GitLab 버전을 빠르게 띄우기 위해 docker 및 docker-compose에 의존합니다.

root@kitploit:~
make up

로컬 GitLab 인스턴스와 debian 인스턴스를 띄워 리버스 셸을 더 쉽게 테스트할 수 있게 합니다. GitLab 인스턴스는 localhost의 5580 포트에서 사용할 수 있습니다. 이 추가 이미지를 사용하면 docker 네트워크 내에서 접근 가능한 IP를 얻을 수 있습니다. docker 컨테이너에서 localhost에 접근할 수 있게 만드는 것도 가능하지만, 내 생각에는 그럴 가치가 없고 --privileged 사용을 권장하고 싶지 않습니다.

다음 명령으로 RHOST debian 인스턴스에 쉽게 연결할 수 있습니다:

root@kitploit:~
make shell

이를 통해 nc -lnvp 9000으로 리버스 셸을 준비할 수 있습니다.

이 작업이 끝나면 익스플로잇을 테스트할 준비가 된 것입니다. 다음을 실행하면 됩니다:

root@kitploit:~
make exploit

이 명령은 익스플로잇을 실행하지만 RCE를 수행하지는 않으며, 대신 GitLab Rails 시크릿을 출력합니다.

root@kitploit:~
make exploit-rce

위에서 언급한 RCE 페이로드를 이 CVE와 연계하여 리버스 셸을 얻습니다.

즐겁게 해킹하세요!

참고 자료

  • https://hackerone.com/reports/827052
  • https://nvd.nist.gov/vuln/detail/CVE-2020-10977
  • https://www.exploit-db.com/exploits/48431
도구 다운로드