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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2012-2122 — CVE-2012-2122 - MySQL身份验证绕过 | Kitploit
工具/GitHubGitHub/k3ystr0k3r/cve-2012-2122
密码攻击漏洞分析漏洞利用渗透测试身份验证学习与教育数据库安全
GitHubk3ystr0k3r/cve-2012-2122

CVE-2012-2122

CVE-2012-2122 - MySQL身份验证绕过

查看仓库
32个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2012-2122 - MySQL 认证绕过

针对 CVE-2012-2122 的概念验证(PoC),这是一个影响易受攻击的 MySQL 和 MariaDB 服务器的严重认证绕过漏洞。

免责声明

本项目仅用于教育目的、安全研究和授权的渗透测试。请勿将此软件用于您不拥有或未经明确许可测试的系统。


CVE-2012-2122 是 MySQL 密码验证逻辑中发现的一个认证绕过漏洞。

由于整数转换/比较错误,在某些条件下,无效密码的比较结果可能被错误地判定为相等,从而导致认证意外成功。

攻击者无需知道有效密码,只需反复使用任意密码尝试认证,直到触发该比较错误。

成功的概率大约为:

  • 每 256 次认证尝试中约有 1 次成功(0.39%)

由于此概率相对较高,自动化工具通常只需几百次登录尝试即可绕过认证。


严重性

指标值
CVECVE-2012-2122
CVSS v27.5 (高)
攻击向量网络
认证无
用户交互无
影响认证绕过

受影响版本

该漏洞影响编译时使用了易受攻击的编译器优化的 MySQL 构建,包括以下版本:

  • MySQL 5.1.x
  • MySQL 5.5.x
  • 部分从易受攻击代码衍生的 MariaDB 版本

此问题主要影响那些编译器行为暴露了该错误的 Linux 发行版。

并非所有这些版本的安装都存在漏洞。


技术细节

在密码验证过程中,MySQL 内部使用 memcmp() 函数比较两个哈希值。

正常情况:

root@kitploit:~
memcmp(hash1, hash2)

返回:

  • 0 相等时
  • 非零值 不相等时

漏洞的产生原因是:返回值被存储在一个有符号整数中,随后在某些转换方式下,某些非零值被解释为认证成功。

简化逻辑:

root@kitploit:~
if (memcmp(hash1, hash2) == 0)
{
    // 登录成功
}

在易受攻击的编译器行为下,memcmp() 的特定返回值可能错误地满足比较条件。

因此,错误的密码偶尔也能成功认证。


利用

攻击者只需要:

  • 对 MySQL 服务的网络访问
  • 一个有效的用户名

无需知道密码。

攻击者连续使用随机密码提交登录尝试。

最终,由于比较错误,某次认证会成功。

典型攻击流程:

root@kitploit:~
Attempt #1
    ↓
认证失败

Attempt #57
    ↓
认证失败

Attempt #141
    ↓
认证失败

Attempt #237
    ↓
认证成功

平均每 256 次尝试成功一次。


影响

成功利用允许攻击者:

  • 无需正确密码即可认证
  • 访问数据库内容
  • 导出敏感信息
  • 修改记录
  • 创建或删除数据库
  • 对依赖 MySQL 的应用程序发起升级攻击

如果攻击目标是管理凭据,则可能完全控制数据库服务器。


检测

指标包括:

  • 大量失败的认证尝试
  • 同一客户端的快速重复登录
  • 多次失败后认证成功
  • 异常的数据库访问模式

检查 MySQL 认证日志中是否存在过多的失败登录活动。


缓解措施

建议的缓解措施是升级到已修补的版本。

额外的防御措施包括:

  • 限制 MySQL 的网络暴露
  • 使用防火墙限制访问
  • 禁用远程 root 登录
  • 强制执行最小权限数据库账户
  • 监控认证日志以发现暴力破解行为
  • 尽可能要求 VPN 或内部网络访问

参考

  • CVE-2012-2122
  • Oracle MySQL 安全公告
  • MariaDB 安全公告
  • NVD(国家漏洞数据库)

root@kitploit:~

---

## 使用示例

```bash
python3 exploit.py -ip <target>

示例:

root@kitploit:~
python3 exploit.py -ip 192.168.1.100

教育目的

此仓库演示了认证逻辑中一个微妙的实现缺陷如何彻底破坏密码验证。

尽管该漏洞已有十多年历史,它仍然是以下方面的重要案例研究:

  • 安全软件开发
  • 编译器相关行为
  • 认证设计
  • 防御性编程
  • 漏洞研究
下载工具