网络营销电子商务研究中心

网络营销电子商务研究中心 (https://www.0058.net/index.php)
-   MetInfo (https://www.0058.net/forumdisplay.php?f=87)
-   -   MetInfo设计缺陷导致删除整站等严重漏洞全版本通杀 (https://www.0058.net/showthread.php?t=4934)

Redgranite 2014-12-31 10:04 PM

MetInfo设计缺陷导致删除整站等严重漏洞全版本通杀
 
漏洞类型: 设计缺陷/逻辑错误

简要描述:MetInfo设计缺陷,可导致删除整站等严重漏洞,5.1及5.2通杀。
详细说明:那官方最新版metinfo5.2测试!

第一处:任意目录删除

文件出在/admin/system/uploadfile.php

Code:

<?php
# MetInfo Enterprise Content Management System
# Copyright (C) MetInfo Co.,Ltd (http://www.metinfo.cn). All rights reserved.
require_once '../login/login_check.php';
require_once 'mydir.class.php';
$rurls='../system/uploadfile.php?anyid='.$anyid.'&cs='.$cs.'&lang='.$lang;
if($action=='deletefolder'){
  $filedir="../../".$filename;
  deldir($filedir,0);
  metsave($rurls);
}
if($action=='delete'){
        $rurls.='&fileurl='.$fileurl.'&file_classnow='.$file_classnow.'&page='.$page;
        if($action_type=="del"){
                $allidlist=explode(',',$allid);
                $k=count($allidlist)-1;
                for($i=0;$i<$k; $i++){
                        if(strcasecmp(substr(trim($allidlist[$i]),0,13),'../../upload/')!=0)die('met1');
                        if(substr_count(trim($allidlist[$i]),'../')!=2)die('met2');
                        if(file_exists($allidlist[$i]))@unlink($allidlist[$i]);
                }
                metsave($rurls);
        }else{
                if(strcasecmp(substr(trim($filename),0,13),'../../upload/')!=0)die('met1');
                if(substr_count(trim($filename),'../')!=2)die('met2');
                if(file_exists($filename)){
                        @unlink($filename);
                        metsave($rurls);
                }else{
                        metsave($rurls,$lang_setfilenourl);
                }
        }

当$action=='deletefolder'时,filename没有过滤,直接拼接到filedir

然后deldir($filedir,0),这里比删除文件更给力,可直接删除真个目录,甚至删除整站目录。

虽然在后台才能删除,但是这里存在CSRF漏洞,没有任何防御CSRF的措施,而且是GET直接请求,可以给管理留言等,可以优势管理访问我们的链接,后果不堪设想。



首先我们在网站根目录下新建一个目录test

然后构造伪造请求,来删除此目录:


Code:

http://localhost/metinfo/admin/system/uploadfile.php?filename=test&action=deletefolder
成功把根目录下的test删除,而且在过程中没有任何CSRF防御措施。

这样的话恶意攻击者可以使用CSRF删除系统文件,删除整站,删除config等等,瞬间搞垮网站。



同样的问题还有:

任意添加管理员,修改上传文件类型等操作。

修复方案:控制删除的目录。

添加CSRF Token


All times are GMT +8. The time now is 11:00 AM.

Powered by vBulletin Version 3.8.7
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.