PHPMyAdmin 4.8.0〜4.8.1远程执行代码

前言

我在PMA 4.8.0~4.8.1中发现了一个文件包含漏洞,它被分配了CVE-2018-12613。它是由脆弱路径检查功能中的验证旁路导致的。此漏洞使经过身份验证的远程攻击者能够在服务器上执行任意PHP代码。

漏洞分析

在index.php

这个过去常常被声明中的条件所保护,但在4.8.0版本中,最后一个检查被改为重用现有的函数,我认为这个函数是用来检查URL路径的。因此,我们可以利用URL功能来达到任意文件包含。功能如下:

函数从后面的所有内容(后面的 所有内容都是查询字符串,它不是URL路径的一部分)中检查它是否在白名单中。白名单是一个列表:

Attack

现在,由于我们可以完全控制,直接来自,我们可以将其设置为:

该功能然后执行其检查:

1、剥去一切后 ?,分配'sql.php'给$_page

2、检查$_page,即'sql.php',在白名单中?是

3、通过检查后,回到index.php:

完整的exp:

tips:

1、%3f 将被解码并成为 ?

2、Core::checkPageValidity剥离所有内容 ? 并sql.php在白名单内找到:检查被绕过!

2、index.php运行include 'sql.php?/../../etc/passwd',PHP的魔术来转换路径 ../etc/passwd,而不检查目录是否sql.php?存在。最后,它包含../etc/passwd成功。

写exp

要写这个漏洞,你可以枚举文件路径,如:

一旦你找到了..你需要预先设置的数量 ,你可以将你的php有效载荷注入到访问日志中,或者运行一个查询SELECT ‘',sql.php并包含你自己的会话文件(例如/var/lib/php5/sess_

),它包含你的SQL查询,以执行任意PHP代码。

参考

https://www.phpmyadmin.net/security/PMASA-2018-4/

https://www.securityfocus.com/bid/104532

https://nvd.nist.gov/vuln/detail/CVE-2018-12613

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180702A0HSEK00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券