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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-72898-metabase-sqli — CVE-2026-72898 (reset_password를 통한 Metabase 인증 우회 SQLi) 탐지기 + 근본 원인 분석 | Kitploit
도구/GitHubGitHub/d-maggipinto/cve-2026-72898-metabase-sqli
Vulnerability ScannersVulnerability AnalysisExploitationWeb SecurityPenetration Testing
GitHubd-maggipinto/cve-2026-72898-metabase-sqli

CVE-2026-72898-metabase-sqli

CVE-2026-72898 (reset_password를 통한 Metabase 인증 우회 SQLi) 탐지기 + 근본 원인 분석

저장소 보기
17시간 49분 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-72898 — Metabase 인증 우회 SQL 인젝션 (탐지기 + 분석)

CVE CVSS CISA KEV Product Type Auth License

POST /api/session/reset_password를 통한 Metabase의 인증 우회 SQL 인젝션. CVSS 10.0, CISA KEV 카탈로그에 등재, 실제 공격에 악용됨.

비밀번호 재설정 요청 본문의 선언되지 않은 필드가 검증된 식별자가 아닌 HoneySQL 구조로 애플리케이션 데이터베이스 사용자 조회에 도달합니다. JSON 객체 키가 Clojure 키워드가 되어 {"raw": "<SQL>"}이 HoneySQL의 :raw 절로 컴파일되고 출력됩니다 — Metabase 애플리케이션 데이터베이스에 대한 임의 SQL이 인증 없이 실행됩니다.

그대로, 파라미터화 없이

이 저장소는 탐지기(블라인드, 시간 기반 판정 도구)와 벤더 패치에서 파생된 근본 원인 분석을 포함합니다. 방어자가 자신의 노출을 확인하고 보안 연구자가 버그를 연구하기 위한 용도입니다. 데이터를 유출하거나 무기화된 관리자 탈취 익스플로잇을 제공하지 않습니다.

  • cve-2026-72898.py — 버전 게이트, 실패 시 안전 종료 탐지기 (VULN / SAFE / UNTESTED)
  • TECHNICAL.md — v0.63.2 → v0.63.15 패치 diff의 전체 근본 원인 분석
  • lab/docker-compose.yml — 취약 + 패치된 인스턴스 재현용

데모

CVE-2026-72898 탐지기 데모

탐지기는 영향받는 인스턴스에 대해 VULN, 패치된 인스턴스에 대해 SAFE를 보고합니다 — 그리고 요청이 스로틀링, 캐시되거나 앱에 도달하지 못하면 UNTESTED(절대 거짓 SAFE 아님)를 보고합니다. 녹화본도 asciinema 캐스트로 제공됩니다.

영향받는 / 수정된 버전

브랜치취약수정
0.58 / 1.58< 0.58.240.58.24
0.59 / 1.59< 0.59.210.59.21
0.60 / 1.60< 0.60.170.60.17
0.61 / 1.61< 0.61.110.61.11
0.62 / 1.62< 0.62.90.62.9
0.63 / 1.63< 0.63.50.63.5

권고: GHSA-vwf4-m7j8-wcjf. 영향받는 버전을 실행 중이라면 지금 업그레이드하세요 — 실제 공격에 악용되고 있습니다.

프리미티브

root@kitploit:~
POST /api/session/reset_password HTTP/1.1
Content-Type: application/json

{"token":"1_00000000-0000-0000-0000-000000000000",
 "password":"Placeholder1!",
 "user-id":{"raw":"<ARBITRARY SQL>"}}

애플리케이션 데이터베이스에서 다음이 생성됩니다:

root@kitploit:~
SELECT id, ... FROM core_user WHERE id = (<ARBITRARY SQL>)

이 버그는 블라인드입니다 — 재설정 흐름이 SQL 오류를 삼키고 모든 경우에 동일한 400 {"errors":{"password":"Invalid reset token"}}을 반환합니다 — 따라서 탐지기는 타이밍 오라클을 사용합니다. 전체 데이터 흐름과 패치 diff는 TECHNICAL.md를 참조하세요.

사용법

root@kitploit:~
python3 cve-2026-72898.py https://metabase.example.com                    # H2 앱 DB (기본)
python3 cve-2026-72898.py https://metabase.example.com --engine postgres  # pg_sleep 오라클
python3 cve-2026-72898.py https://metabase.example.com --json --trials 5

종료 코드 0 = VULN, 1 = SAFE 또는 UNTESTED.

실패 시 안전 종료 이유

판정은 VULN / SAFE / UNTESTED입니다 — 절대 "아마 괜찮음"이 아닙니다. 이 도구는:

  • 영향받는 버전 범위 밖에서는 발사하지 않습니다 (그 경우의 부정은 익스플로잇이 아닌 버전을 설명합니다) — --force가 의도적으로 재정의합니다;
  • 재설정 엔드포인트가 10회 시도에서 스로틀링하고 스로틀 응답이 부정을 모방하는 빠른 400이므로 요청마다 X-Forwarded-For를 회전합니다;
  • 엔진이 최적화할 수 없는 H2 오라클(SYSTEM_RANGE에 대한 sum(x))을 사용하고, 지연이 절대 하한과 대조군의 자체 타이밍 분산을 모두 초과해야 합니다;
  • 속도 제한, 캐시 또는 전송 실패 요청을 SAFE가 아닌 UNTESTED로 분류합니다.

재현

root@kitploit:~
cd lab
docker compose up -d          # 3300 = 취약 v0.63.2, 3301 = 패치 v0.63.15
# 첫 실행 DB 초기화에 ~90초 대기
python3 ../cve-2026-72898.py http://127.0.0.1:3300                 # -> VULN
python3 ../cve-2026-72898.py http://127.0.0.1:3301 --force         # -> SAFE

검증됨: v0.63.2는 페이로드 행 수에 따라 선형적으로 확장되는 8초 이상의 델타를 보여줍니다 (5M→0.85s, 10M→1.96s, 20M→4.61s, 40M→7.97s); v0.63.15는 차이를 보이지 않습니다.

책임 있는 사용

소유하거나 명시적으로 평가 권한을 받은 시스템만 테스트하세요. 컴퓨터 시스템에 대한 무단 접근은 대부분의 관할권에서 불법입니다. 이 도구는 무해한 타이밍 프로브로 취약점을 탐지하며 의도적으로 데이터를 읽거나, 수정하거나, 유출하지 않습니다.

라이선스

MIT — LICENSE 참조.

도구 다운로드