
CVE-2019-9053은 CMS Made Simple ≤ 2.2.9 버전에 영향을 주는 시간 기반 블라인드(Time-based Blind) SQL 인젝션 취약점입니다. 인증이 필요하지 않습니다.
취약한 매개변수는 News 모듈(moduleinterface.php)의 m1_idlist입니다. 공격자는 이를 악용하여 관리자 비밀번호 해시, 사용자 이름, 이메일 및 해시에 사용된 salt를 추출할 수 있습니다.
비밀번호 저장 방식은 MD5(salt + password)이며, salt는 8바이트입니다. 이를 통해 해시와 salt를 획득한 후 hashcat이나 John the Ripper 같은 도구로 오프라인에서 비밀번호 크래킹을 시도할 수 있습니다.
CVSS 3.1: 7.5 (HIGH) — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
| 필드 | 값 |
|---|---|
| CVE | CVE-2019-9053 |
| 제품 | CMS Made Simple |
| 영향을 받는 버전 | ≤ 2.2.9 |
| 유형 | 시간 기반 블라인드 SQL 인젝션 (CWE-89) |
| 인증 | 필요 없음 |
| 벡터 | moduleinterface.php?mact=News,m1_,default,0&m1_idlist= |
| 영향 | 자격 증명 추출 (사용자 이름, 이메일, 비밀번호 해시 + salt) |
| CVSS 3.1 | 7.5 HIGH |
| 패치 | CMS Made Simple 2.2.10 |
Daniele Scanu — @Certimeter Group
원본 익스플로잇은 Exploit-DB #46635에서 확인할 수 있습니다.
requests, termcolorpip2 install requests termcolor
# 자격 증명 추출 (salt, 사용자 이름, 이메일, 비밀번호 해시)
python 46635.py -u http://target/cmsms
# 자격 증명 추출 및 wordlist로 비밀번호 크래킹 시도
python 46635.py -u http://target/cmsms --crack -w /path/to/rockyou.txt
| 매개변수 |
|---|
이 익스플로잇은 SLEEP()가 포함된 SQL 페이로드를 담은 HTTP 요청을 전송하여 문자별로 값을 판별합니다:
sitepref_name = 'sitemask' 조건의 cms_siteprefs에서 salt 추출user_id = 1 조건의 cms_users에서 사용자 이름 추출cms_users에서 해시 추출MD5(salt + password)에 대해 wordlist의 각 줄을 대입[+] Salt for password found: 5a599ef579066807
[+] Username found: jkr
[+] Email found: [email protected]
[+] Password found: 62def4866937f08cc13bab43bb14e6f7
moduleinterface.php에 대한 접근 제한| 설명 |
|---|
-u / --url | CMS의 기본 URL (예: http://10.10.10.100/cms) |
-w / --wordlist | 비밀번호 크래킹용 wordlist (선택 사항) |
-c / --crack | 비밀번호 크래킹 모드 활성화 |