Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
poc-CVE-2019-9053 — PoC didático em Python 3 para a CVE-2019-9053, uma SQL Injection time-based blind no CMS Made Simple <= 2.2.9. Esta versão foi adaptada para uso em CTF/laboratório, com prefixos pré-configurados para reduzir o tempo de extração e mensagens explicativas em português. | Kitploit
工具/GitHubGitHub/rideckszz/poc-cve-2019-9053
密码破解漏洞分析Web应用程序漏洞利用CTF学习与教育实验室与实践
GitHubrideckszz/poc-cve-2019-9053

poc-CVE-2019-9053

PoC didático em Python 3 para a CVE-2019-9053, uma SQL Injection time-based blind no CMS Made Simple <= 2.2.9. Esta versão foi adaptada para uso em CTF/laboratório, com prefixos pré-configurados para reduzir o tempo de extração e mensagens explicativas em português.

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
153个月前尚未审核

PoC CVE-2019-9053 - CMS Made Simple SQL注入

用于CVE-2019-9053的Python 3教学PoC,这是CMS Made Simple <= 2.2.9中的一个基于时间的盲SQL注入漏洞。

此版本已修改为用于CTF/实验室环境。它包含预配置的前缀以减少提取时间,以及葡萄牙语的解释性信息,帮助学生理解该漏洞利用的工作原理。

警告

本项目仅用于教育目的、受控实验室及CTF环境。

未经明确授权,请勿将此代码用于第三方系统。

本仓库的作者不对该材料的任何滥用行为负责。

漏洞

CVE-2019-9053影响CMS Made Simple的旧版本,允许通过端点中的m1_idlist参数进行未认证的SQL注入:

root@kitploit:~
/moduleinterface.php?mact=News,m1_,default,0

由于SQL查询的结果不会直接显示在页面上,该漏洞利用了一种称为基于时间的盲SQL注入的技术。

漏洞利用原理

该漏洞利用发送有效载荷,当条件为真时,使数据库执行sleep(1)。

概念示例:

root@kitploit:~
AND (
  SELECT sleep(1)
  FROM cms_users
  WHERE password LIKE '0c01%'
)

如果服务器响应延迟,脚本认为测试的前缀是正确的。

这样,它逐字符地重建敏感信息,例如:

  • 密码盐值
  • 用户名
  • 电子邮件
  • 密码哈希

在此CTF版本中,代码中已包含某些前缀以减少活动所需的时间。

什么是基于时间的盲SQL注入?

当应用程序将用户控制的数据未经适当处理插入SQL查询时,就会发生SQL注入。

在这种情况下,注入是盲的,因为查询结果不会直接出现在HTTP响应中。

它是基于时间的,因为攻击者使用服务器的响应时间作为响应通道。如果测试的条件为真,数据库执行sleep()延迟;如果为假,则正常响应。

简化示例:

root@kitploit:~
漏洞利用提出的问题:
"密码哈希是否以0c01开头?"

如果是:
数据库执行sleep(1),响应延迟。

如果否:
响应没有明显延迟。

通过逐字符重复此过程,漏洞利用程序可以在不直接在页面上看到的情况下重建数据库中的值。

什么是盐值(salt)?

盐值是在生成哈希之前与密码一起使用的额外值。

在此挑战中,CMS Made Simple使用类似的逻辑:

root@kitploit:~
md5(salt + password)

例如:

root@kitploit:~
salt = 1dac0d92e9fa6bb2
password = exemplo123

哈希会根据以下内容计算:

root@kitploit:~
1dac0d92e9fa6bb2exemplo123

盐值用于抵御预计算表攻击,并使相同的密码在不同上下文中生成不同的哈希。

尽管如此,md5(salt + password)是一种过时且薄弱的密码存储方式。现代系统应使用专门的密码算法,例如:

  • Argon2
  • bcrypt
  • scrypt
  • PBKDF2

此CTF版本的修改

此版本已进行适配以方便在实践活动中使用。

主要更改:

  • 代码已更新为Python 3。
  • 葡萄牙语解释性横幅。
  • 终端中关于漏洞利用工作原理的简要说明。
  • 已知前缀以加快提取速度。
  • 针对十六进制盐值和哈希优化的字符集。
  • 盐值和哈希的大小限制。
  • 使用字典进行破解的选项。

挑战中使用的值:

root@kitploit:~
完整盐值: 1dac0d92e9fa6bb2
用户名: mitch
电子邮件: [email protected]
完整哈希: 0c01f4468bd75d7a84c7eb73846e8d96

漏洞利用中配置的前缀:

root@kitploit:~
盐值前缀: 1dac0d92
用户名前缀: mit
电子邮件前缀: admin@
哈希前缀: 0c01f446

这些前缀不会移除攻击逻辑。它们仅减少实验室活动所需的时间。

仓库结构

root@kitploit:~
poc-CVE-2019-9053/
├── exploit_ctf.py
├── requirements.txt
├── README.md
├── wordlist-example.txt
└── .gitignore

要求

  • Python 3
  • requests
  • termcolor

安装

克隆仓库:

root@kitploit:~
git clone https://github.com/SEU_USUARIO/poc-CVE-2019-9053.git
cd poc-CVE-2019-9053

创建虚拟环境:

root@kitploit:~
python3 -m venv .venv

激活虚拟环境:

root@kitploit:~
source .venv/bin/activate

安装依赖:

root@kitploit:~
pip install -r requirements.txt

requirements.txt

requirements.txt文件应包含:

root@kitploit:~
requests
termcolor

使用

简单执行:

root@kitploit:~
python3 exploit_ctf.py -u http://target/cms

使用字典尝试密码破解的执行:

root@kitploit:~
python3 exploit_ctf.py -u http://target/cms --crack -w wordlist-example.txt

查看脚本帮助:

root@kitploit:~
python3 exploit_ctf.py -h

字典示例

wordlist-example.txt文件可包含:

root@kitploit:~
wrongpassword
admin123
dieema123
password
123456

期望输出示例

root@kitploit:~
[+] 密码盐值已找到: 1dac0d92e9fa6bb2
[+] 用户名已找到: mitch
[+] 电子邮件已找到: [email protected]
[+] 密码哈希已找到: 0c01f4468bd75d7a84c7eb73846e8d96
[+] 密码已找到: dieema123

破解说明

在漏洞利用提取了盐值和密码哈希后,它可以尝试使用字典找出明文密码。

测试的逻辑是:

root@kitploit:~
md5(salt + 候选密码)

对于字典中的每个密码,脚本计算哈希并与从数据库中提取的哈希进行比较。

概念示例:

root@kitploit:~
candidate_hash = md5("1dac0d92e9fa6bb2" + "dieema123")

如果结果与提取的哈希相等,则找到了密码。

关于执行时间的说明

基于时间的SQL注入通常很慢,因为每个字符都需要通过多次请求进行测试。

此版本通过以下方式减少时间:

  • 已知前缀。
  • 用于盐值和哈希的十六进制字符集。
  • 已知的盐值和哈希最大长度。
  • 每正确字符延迟1秒。

即便如此,时间可能因以下因素而变化:

  • 网络延迟。
  • 服务器负载。
  • 数据库性能。
  • TIME_DELAY中配置的值。

如果出现大量误报或漏报,请增加代码中TIME_DELAY的值。

致谢

由Derick G. Andrighetti修改为CTF的Python 3版本。

基于Certimeter Group的Daniele Scanu最初发布的旧版Python 2公共PoC。

参考

  • CVE-2019-9053
  • CMS Made Simple <= 2.2.9
  • 技术:基于时间的盲SQL注入

许可证

教育用途。

本材料是为学习、实验室演示和CTF活动而制作的。

下载工具