Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2026-100671-poc — CVE-2026-100671에 대한 로컬 전용 개념 증명 검증기로, 루프백 대상에 대해 Grav Twig 페이지 캐시 세션 쿠키 노출 및 재생을 재현합니다. | Kitploit
도구/GitHubGitHub/canhieu/cve-2026-100671-poc
Vulnerability AnalysisExploitationWeb Application ExploitationSecurity VirtualizationWeb SecurityPenetration Testing
GitHubcanhieu/cve-2026-100671-poc

cve-2026-100671-poc

CVE-2026-100671에 대한 로컬 전용 개념 증명 검증기로, 루프백 대상에 대해 Grav Twig 페이지 캐시 세션 쿠키 노출 및 재생을 재현합니다.

저장소 보기
62일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-100671 — Grav Twig 세션 쿠키 노출

Grav 2.0.25에서 수정된 Grav content-Twig/page-cache 세션 탈취에 대한 최소한의 로컬 전용 검증 도구입니다.

권고:

  • CVE-2026-100671
  • GHSA-pp89-h475-7gj6
  • Grav 2.0.25 릴리스

범위

exploit.py는 의도적으로 루프백 대상으로 제한됩니다:

  • 127.0.0.1
  • ::1
  • localhost

원격 호스트를 거부하고, 루프백 리다이렉트만 따르며, Python 표준 라이브러리 HTTP 클라이언트를 사용하고, 요청 타임아웃을 적용하며, bearer 토큰, 쿠키, 응답 본문을 절대 출력하지 않습니다.

소유하거나 테스트가 명시적으로 허가된 Grav 인스턴스에만 사용하십시오. 이 스크립트는 로컬 랩에 공개 증명 페이지를 생성합니다. 랩이 실행 간 콘텐츠를 유지하는 경우 테스트 후 해당 페이지를 제거하십시오.

취약점 체인

  1. 낮은 권한의 페이지 작성자가 샌드박스된 Twig를 포함하는 콘텐츠를 게시합니다.
  2. get_cookie()가 방문하는 관리자의 세션 쿠키를 서버 측에서 읽습니다.
  3. Grav가 Twig 처리 후 페이지 출력을 세션 식별자 없이 캐시에 저장합니다.
  4. 인증되지 않은 요청이 캐시된 쿠키 값을 수신합니다.
  5. 해당 값을 로컬 API에 재전송하면 관리자로 인증됩니다.

페이지 작성 계정은 문서화된 낮은 권한의 쓰기 경로만 필요합니다. api.pages.read, admin.*, 또는 슈퍼 관리자 접근 권한은 필요하지 않습니다. 피해 관리자는 공개 페이지를 한 번 방문하기만 하면 됩니다.

영향받는 버전

  • Grav 2.0.19부터 2.0.24까지: 기본 제공되는 content-Twig 구성으로 취약합니다.
  • Grav 2.0.0부터 2.0.18까지, 그리고 1.7.x: content Twig가 명시적으로 활성화된 경우에만 영향을 받습니다.
  • Grav 2.0.25: 수정됨.

랩 요구 사항

다음을 갖춘 로컬 Grav 랩을 실행하십시오:

  • Grav API 플러그인 활성화;
  • Grav Login 플러그인 활성화;
  • API 토큰을 얻고 페이지를 생성할 수 있는 낮은 권한의 작성자 계정 하나;
  • 관리자 계정 하나;
  • 대상 페이지 라우트가 공개적으로 읽기 가능.

이 두 파일 저장소는 Grav, PHP, 플러그인 또는 계정을 프로비저닝하지 않습니다.

실행

자격 증명을 환경 변수로 설정하여 소스 제어에 포함되지 않도록 하십시오:

export GRAV_BASE_URL=http://127.0.0.1:8080
export GRAV_WRITER_USERNAME=low
export GRAV_WRITER_PASSWORD='local-writer-password'
export GRAV_ADMIN_USERNAME=admin
export GRAV_ADMIN_PASSWORD='local-admin-password'

python3 exploit.py

기본 URL은 루프백으로 유지되어야 합니다. 기본 라우트는 무작위입니다. 실행 간 비교 시 고정 라우트를 선택할 수 있습니다:

python3 exploit.py --route /cookie-proof-24

예상되는 취약 결과:

page_create_status=201
admin_login_status=200
victim_page_status=200
attacker_page_status=200
cached_victim_cookie_visible_to_attacker=yes
admin_cookie_value_match=yes
replayed_cookie_api_status=200
result=VULNERABLE

이 명령은 예상 결과가 재현되면 0, 재현되지 않으면 1, 설정 또는 전송 오류의 경우 2로 종료됩니다.

수정 버전 확인

Grav 2.0.25에 대해 동일한 명령을 실행하십시오:

python3 exploit.py --expect fixed

예상되는 수정 동작: 공격자가 볼 수 있는 세션 값이 없고 세션 재전송이 성공하지 않습니다. 깨끗한 수정 결과는 --expect fixed와 함께 0으로 종료됩니다.

완화

Grav 2.0.25 이상으로 업그레이드하십시오. 이전 배포의 경우, 권고에서 다음과 같은 임시 제어를 나열합니다:

  • security.twig_content.process_enabled: false로 content Twig를 비활성화; 또는
  • system.pages.never_cache_twig: true 설정;
  • 기존 Grav 캐시 삭제;
  • 관리자 세션 교체.

HttpOnly, Secure, 또는 SameSite를 수정으로 간주하지 마십시오: 취약한 쿠키 읽기는 Twig 렌더링 중 서버 측에서 발생합니다.

공개

canhieu가 보고했습니다. 이 저장소는 이미 공개된 권고에 대한 재현 지원 도구이며, 원격 스캐너나 자격 증명 수집 도구가 아닙니다.

도구 다운로드