【腾讯云】11.11 云上盛惠,云产品限时抢购,1核2G云服务器首年88元

搜搜吧

查看: 71|回复: 0

[dedecms] 最新织梦cms漏洞之安全设置,有效防护木马

[复制链接]
  • TA的每日心情
    奋斗
    昨天 13:35
  • 签到天数: 695 天

    [LV.9]以坛为家II

    博士生

    1万

    主题

    2万

    帖子

    5万

    积分

    Rank: 8Rank: 8

    UID
    15343
    威望
    -561
    贡献
    8107
    在线时间
    368 小时
    注册时间
    2015-10-12
    发表于 2020-9-24 11:04:08 | 显示全部楼层 |阅读模式
    织梦CMS在安装完成后,新人往往会直接开始开发使用,忽视了一些安全优化的操作,这样会导致后期整个系统安全系数降低,被黑或者被注入的概率极高,毕竟这世界百分百存在着极多的无聊hacker对全网的网站进行扫描,扫到你这个菜站,尤其是使用率极高的DEDECMS,对你的站点下手的欲望更高,所以在开发前做好安全防范还是很有必要的!
    安全设置前:备份网站文件及数据库
    系统安全优化设置之前,做好备份工作。网站备份是网站维护必须必学基础,参考教程<<DEDECMS织梦网站备份教程>>
    安全设置一:删文件
    安装完成后会有一些文件,可以说是冗余文件,完全没有作用,反而带来被黑的危险,删除即可,以下目录文件均可删除:
    [td]
    目录
    删除原因
    /install
    安装后的余留文件,没用,整个文件夹删除
    /member
    会员功能文件,大数企业站没用,文件夹删除,若需要会员功能的就不能删
    /special
    专题功能,如果你不需要这个功能,文件夹删除,需要就别删,大部分是不需要的
    /tags.php
    TAG标签,没有此功能可删除

    [td]
    网站后台目录dede要删除的文件
    删除原因
    /dede/tpl.php
    文件上传管理系统文件,易被挂马,强烈建议删除或者不用时请改名(tpl备用.php)
    /dede/templets_*.php
    模板管理功能,老手建议删除,使用FTP管理
    /dede/media_*.php
    附件数据管理功能文件,易被挂马,删除(用你的FTP管理文件就可以了,别用这个)
    /dede/file_*.php
    文件式管理器功能控制器文件,易被挂马,删除(用你的FTP管理文件就可以了,别用这个)
    /dede/mytag_*.php、mytag_tag_*.php
    自定义标记管理,易被上传一句话木马
    /dede/story_*.php
    小说功能,可删除
    /dede/erraddsave.php
    纠错功能,可删除
    /dede/feedback_*.php
    评论管理,可删除
    /dede/group_*.php
    圈子功能,很少用到,可删除
    /dede/co_*.php
    采集控制文件,可删除
    /dede/cards_*.php
    点卡功能功能,可删除
    /dede/ad_*.php
    广告管理添加/删除文件,企业站一般不用可删除
    /dede/spec_*.php
    专题管理,没有专题页面,可删除
    /dede/vote_*.php
    投票功能,可删除
    /dede/sys_sql_query.php
    SQL命令运行器,不需要的话可以改名为(sys_sql_query安全禁用.php)也可以删除


    [td]
    目录/plus要删除的文件
    删除原因(正常的企业站可以只保留list.php、view.php、count.php、search.php、diy.php(企业站经常用到的表单)五个文件以及img文件夹,其他全部删除)
    /plus/guestbook
    留言簿模块,整体删除,容易SQL注入及垃圾留言,
    /plus/task和task.php
    计划任务控制文件,文件夹和文件都删除
    /plus/bookfeedback.php、bookfeedback_js.php
    图书评论和评论调用文件,存在注入漏洞,不安全
    /plus/bshare.php
    分享插件
    /plus/ad_js.php
    广告插件,新闻资讯站用到的,请勿删除
    /plus/car.php、posttocar.php、carbuyaction.php
    购物车
    /plus/comments_frame.php
    调用评论,存在安全漏洞
    /plus/digg_ajax.php、digg_frame.php
    顶踩
    /plus/download.php、disdls.php
    下载和次数统计
    /plus/erraddsave.php
    纠错
    /plus/feedback.php、feedback_ajax.php、feedback_js.php
    评论
    /plus/stow.php
    内容收藏
    /plus/vote.php
    投票

    安全设置二:后台目录及账号密码修改
    ①网站后台文件改名:默认后台目录是/dede,需要将这个文件夹的名称修改,比如改为WangZhan123@+,那么后台登陆地址就由www.xxx.com/dede变为www.xxx.com/WangZhan123@+,(不定期更改一下)
    ②后台登录密码请勿使用admin,参考修改教程<<织梦修改管理员账号admin方法大全>>
    安全设置三:目录权限设置
    ①有条件的用户把中 data、templets、uploads、a(可删)、special(可删)、images、install(装后删)目录设置为不允许执行脚本,include、plus、dede目录禁止写入,系统将更安全;
    ②权限设置一般通过主机控制面板,比如阿里云的文件和目录权限设置、西部数码的文件保护等等。
    ③老版本若登录后台提示验证码错误,选中/data目录,将权限设置为完全控制(可读可写)权限
    3-1Z920091321249.JPG
    安全设置四:主机安全防护
    主机安全防护只针对独立服务器或者VPS。
    WIN服务器:可以安装安全狗、『D盾_防火墙』
    linux服务器:网站防窜改程序、宝塔系统加固;
    ①、漏洞文件① /include/dialog/select_soft_post.php
    1. $fullfilename = $cfg_basedir.$activepath.'/'.$filename;
    2. 修改为
    3. if (preg_match('#.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) {
    4.         ShowMsg("你指定的文件名被系统禁止!",'javascript:;');
    5.         exit();
    6. }
    7. $fullfilename = $cfg_basedir.$activepath.'/'.$filename;
    复制代码
    ②、漏洞文件 /dede/media_add.php
    这是后台文件任意上传漏洞(上面有说删除此文件,如果不删除,需要使用这个功能,那么修改以下代码补掉漏洞)
    1. $fullfilename = $cfg_basedir.$filename;
    2. 修改为
    3. if (preg_match('#.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) {
    4.                                 ShowMsg("你指定的文件名被系统禁止!",'javascript:;');
    5.                                 exit();
    6.   }
    7. $fullfilename = $cfg_basedir.$filename;
    复制代码
    ③、漏洞文件 /include/uploadsafe.inc.php (修改两个地方)
    1. $image_dd = @getimagesize($_key);
    2. 修改为
    3. $image_dd = @getimagesize($_key); if($image_dd == false){ continue; }
    复制代码
    1. ${$_key.'_size'} = @filesize($_key);}
    2. 修改为
    3. ${$_key.'_size'} = @filesize($_key);}
    4. $imtypes = array("image/pjpeg", "image/jpeg", "image/gif", "image/png", "image/xpng", "image/wbmp", "image/bmp");
    5. if(in_array(strtolower(trim(${$_key.'_type'})), $imtypes)) { $image_dd = @getimagesize($_key); if($image_dd == false){ continue; }
    6. if (!is_array($image_dd)) { exit('Upload filetype not allow !');} }
    复制代码
    安全设置六、SQL注入漏洞
    ①、漏洞文件 /include/filter.inc.php (大概在46行)
    1. return $svar;
    2. 修改为
    3. return addslashes($svar);
    复制代码
    ②、漏洞文件 /plus/search.php (大概在109行)
    1. $keyword = addslashes(cn_substr($keyword,30));
    2. 修改为
    3. $typeid = intval($typeid); $keyword = addslashes(cn_substr($keyword,30));
    复制代码
    ③、漏洞文件 /member/mtypes.php (大概在71行)
    1. $query = "UPDATE `dede_mtypes` SET mtypename='$name' WHERE mtypeid='$id' AND mid='$cfg_ml->M_ID'";
    2. 修改为
    3. $id = intval($id); $query = "UPDATE `dede_mtypes` SET mtypename='$name' WHERE mtypeid='$id' AND mid='$cfg_ml->M_ID'";
    复制代码
    ④、漏洞文件 /member/pm.php文件 (大概在65行)
    1. $row = $dsql->GetOne("SELECT * FROM `dede_member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')");
    2. 修改为
    3. $id = intval($id); $row = $dsql->GetOne("SELECT * FROM `dede_member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')");
    复制代码
    ⑤、漏洞文件 /plus/guestbook/edit.inc.php (大概在55行)
    1. $dsql->ExecuteNoneQuery("UPDATE `dede_guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' ");
    2. 修改为
    3. $msg = addslashes($msg); $dsql->ExecuteNoneQuery("UPDATE `dede_guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' ");;
    复制代码
    ⑥、漏洞文件 /member/soft_add.php (大概在154行)
    1. $urls .= "{dede:link islocal='1' text='{$servermsg1}'} $softurl1 {/dede:link}
    2. ";
    3. 修改为     
    4. if (preg_match("#}(.*?){/dede:link}{dede:#sim", $servermsg1) != 1)
    5. { $urls .= "{dede:link islocal='1' text='{$servermsg1}'} $softurl1 {/dede:link}
    6. "; }
    复制代码
    ⑦、漏洞文件 /member/article_add.php (大概在83行,cookies泄漏导致SQL漏洞)
    1. if (empty($dede_fieldshash) || $dede_fieldshash != md5($dede_addonfields.$cfg_cookie_encode))
    2. 修改为
    3. if (empty($dede_fieldshash) || ( $dede_fieldshash != md5($dede_addonfields . $cfg_cookie_encode) && $dede_fieldshash != md5($dede_addonfields . 'anythingelse' . $cfg_cookie_encode)))
    复制代码
    ⑧、漏洞文件 /member/album_add.php (大约220行,对输入参数mtypesid未进行int整型转义,导致SQL注入发生)
    1. $description = HtmlReplace($description, -1);//2011.06.30 增加html过滤 (by:织梦的鱼)
    2. 修改为
    3. $description = HtmlReplace($description, -1);//2011.06.30 增加html过滤 (by:织梦的鱼)
    4. $mtypesid = intval($mtypesid);
    复制代码
    ⑨、漏洞文件 /member/inc/inc_archives_functions.php (大概在239行,cookies泄漏导致SQL漏洞)
    1. echo "";
    2. 修改为
    3. echo "";
    复制代码
    ⑩、漏洞文件 /include/common.inc.php (SESSION变量覆盖导致SQL注入漏洞,最新的版本中已经修复)
    1. if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#',$svar) )
    2. 修改为
    3. if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#',$svar) )
    复制代码
    &#9322;、漏洞文件 /include/payment/alipay.php (支付模块注入漏洞,此漏洞织梦官方在最新的版本中已经修复)
    1. $order_sn = trim($_GET['out_trade_no']);
    2. 修改为
    3. $order_sn = trim(addslashes($_GET['out_trade_no']));
    复制代码
    &#9323;、漏洞文件 /include/dedesql.class.php (大概在590行)
    1. if(isset($GLOBALS['arrs1']))
    2. 修改为
    3. $arrs1 = array(); $arrs2 = array(); if(isset($GLOBALS['arrs1']))
    复制代码
    &#9324;、漏洞文件 /member/inc/archives_check_edit.php (大概第92行,dedecms前台任意文件删除(需要会员中心),发表文章处,对于编辑文章的时候图片参数处理不当,导致了任意文件删除)
    1. $litpic =$oldlitpic;
    2. 修改为
    3. $litpic =$oldlitpic;
    4. if (strpos( $litpic, '..') !== false || strpos( $litpic, $cfg_user_dir."/{$userid}/" ) === false) exit('not allowed path!');
    复制代码
    安全设置五:无用文件中的风险代码删除①  dede empletslogin_ad.htm(这是织梦默认后台登陆界面的广告代码,没用,删除以下这段代码)


    1.   [list]

    2.    
    3.   [/list]

    复制代码
    ② dede empletsindex_body.htm(织梦的后台首页模板文件,删除以下这段广告代码)
    ③ dedemodule_main.php(向织梦官网发送卸载或安装插件的信息,若服务器配置不高,或不支持采集(下载),那会卡死!注释掉以下代码)
    1. SendData($hash);//321行
    2. SendData($hash,2);//527行
    复制代码
    ④ include aglib link.lib.php(织梦官方友链上传的代码,没有用,删除,否则占用性能,甚至卡死)
    1. else if($typeid == 999)
    2. {
    3. }
    4. //将{}里的以及上面的else全部删除
    复制代码
    ⑤ includededemodule.class.php(版本检测代码,30分钟一次,要扫描文件的!为什么管理模块打不开的原因就在这里,网站配置低的,卡死!)
    1. if(file_exists($cachefile) && (filemtime($cachefile) + 60 * 30) > time())
    2. 修改为
    3. if(file_exists($cachefile) && filesize($cachefile) > 10)
    复制代码
    ⑥ includededesql.class.php(下面这段代码会给网站加友情链接及版权"Power by DedeCms",删除)
    1. $arrs1 = array(0x63,0x66,0x67,0x5f,0x70,0x6f,0x77,0x65,0x72,0x62,0x79);
    2. $arrs2 = array(0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x64,0x65,0x64,0x65,0x63,0x6d,0x73,0x2e,0x63,0x6f,0x6d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3d,0x27,0x5f,0x62,0x6c,0x61,0x6e,0x6b,0x27,0x3e,0x50,0x6f,0x77,0x65,0x72,0x20,0x62,0x79,0x20,0x44,0x65,0x64,0x65,0x43,0x6d,0x73,0x3c,0x2f,0x61,0x3e);

    3. //特殊操作
    4. $arrs1 = array(); $arrs2 = array(); if(isset($GLOBALS['arrs1']))
    5. {
    6.     $v1 = $v2 = '';
    7.     for($i=0;isset($arrs1[$i]);$i++)
    8.     {
    9.         $v1 .= chr($arrs1[$i]);
    10.     }
    11.     for($i=0;isset($arrs2[$i]);$i++)
    12.     {
    13.         $v2 .= chr($arrs2[$i]);
    14.     }
    15.     $GLOBALS[$v1] .= $v2;
    16. }
    复制代码
    ⑦ includecommon.func.php(会给网站加版权的,删除)
    1. $arrs1 = array(0x63,0x66,0x67,0x5f,0x70,0x6f,0x77,0x65,0x72,0x62,0x79);
    2. $arrs2 = array(0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,
    3. 0x77,0x77,0x77,0x2e,0x64,0x65,0x64,0x65,0x63,0x6d,0x73,0x2e,0x63,0x6f,0x6d,0x20,0x74,0x61,0x72,
    4. 0x67,0x65,0x74,0x3d,0x27,0x5f,0x62,0x6c,0x61,0x6e,0x6b,0x27,0x3e,0x50,0x6f,0x77,0x65,0x72,0x20,
    5. 0x62,0x79,0x20,0x44,0x65,0x64,0x65,0x43,0x6d,0x73,0x3c,0x2f,0x61,0x3e);
    复制代码
    安全设置六:利用伪静态功能禁止以下目录运行php脚本
    ① linux主机的用户一般都是apache环境,使用 .htaccess 文件来设置,如果你网站根目录已经存在这个文件,那就复制一下代码添加进去。
    1. RewriteEngine on
    2. #安全设置 禁止以下目录运行指定php脚本
    3. RewriteCond % !^$
    4. RewriteRule a/(.*).(php)$ – [F]
    5. RewriteRule data/(.*).(php)$ – [F]
    6. RewriteRule templets/(.*).(php|htm)$ – [F]
    7. RewriteRule uploads/(.*).(php)$ – [F]
    复制代码
    ②:windows主机的用户一般都是iis7、iis8环境,使用 web.config 文件来设置,请确认你的主机已经开启了伪静态而且网站根目录有 web.config 文件,有这个文件的可以复制以下代码添加到对应的rules内。

    1.   
    2.    
    3.      
    4.      
    5.    
    6.   


    7.   
    8.      
    9.       
    10.       
    11.    
    12.   


    13.    
    14.       
    15.          
    16.          
    17.       
    18.    
    复制代码
    ③:Nginx下禁止指定目录运行PHP脚本
    注意:这段配置文件一定要放在 location ~ .php(.*)$ 的前面才可以生效,配置完后记得重启Nginx生效。
    1. location ~* /(a|data|templets|uploads)/(.*).(php)$ {
    2. return 403;
    3. }
    复制代码
    测试有没有生效,可以随便创建一个PHP文件传到uploads文件夹下,执行:域名/uploads/测试文件.php  如果不能打开说明生效。
    安全知识七:常见木马文件
    迄今为止,我们发现的恶意脚本文件有:
    1:检查有无/data/cache/t.php 、/data/cache/x.php和/plus/index.php 这些木马文件,有的话则立即删除
    2:plus 目录木马
    1. plus/90sec.php
    2. plus/ac.php
    3. plus/config_s.php
    4. plus/config_bak.php
    5. plus/diy.php (系统文件)
    6. plus/ii.php
    7. plus/lndex.php
    8. data/cache/t.php
    9. data/cache/x.php
    10. data/cache/mytag-*.htm
    11. data/config.php
    12. data/cache/config_user.php
    13. data/config_func.php
    14. include/taglib/shell.lib.php
    15. include/taglib/*.lib.php
    复制代码
    大多数被上传的脚本集中在plus、data、data/cache、include这几个目录下,请仔细检查这几个目录下最近是否有被上传异常文件。
    推荐D盾—WEB查看工具:
    软件使用自行研发不分扩展名的代码分析引擎,能分析更为隐藏的WebShell后门行为。
    引擎特别针对,一句话后门,变量函数后门,${}执行 ,`执行,
    preg_replace执行,call_user_func,file_put_contents,fputs 等特殊函数
    的参数进行针对性的识别,能查杀更为隐藏的后门,
    并把可疑的参数信息展现在你面前,让你能更快速的了解后门的情况
    新版特别针对 dedecms 的{dede:php}{/dede:php}代码加入了识别!
    软件加入隔离功能,并且可以还原!
    如有不能识别的webshell请使用上传样本功能上传给我们,我们将后期加入识别!
    3-1Z92G031104Z.JPG


    搜搜吧社区温馨提示:
    搜搜吧(www.sosoba.org)十分重视网络版权及其他知识产权的保护,针对网络侵权采取如下版权政策:
    1、本站有理由相信网友侵犯任何人的版权或作品,(图文,文字,下载,视频,非法传播),本站有权不事先通知即删除涉嫌侵权的作品和内容
    2、本站将采取必要的网络技术手段,确认为侵权作品或内容的用户有权进行警告、屏蔽、删除的行为,尽可能的防止侵权行为的发生
    3、搜搜吧影视资源均收集自互联网,没有提供影片资源存储,也未参与录制上传,若本站收录的资源涉及您的版权或知识产权或其他利益,我们会立即删除
    4、搜搜吧,删帖,投诉,举报,侵权,若本站侵犯您的权益,附上身份及权利证明,请直接发送邮件到 kefu-sosoba@qq.com 我们将在一个工作日内删除
    Powered by www.sosoba.org Copyright © 2013-2020 搜搜吧社区 小黑屋|手机版|地图|联系站长|腾讯云代金券|帮助中心|公共DNS|seo优化服务|搜搜吧
    广告服务/项目合作/会员购买:QQ 侵权举报邮箱: kefu-sosoba@qq.com  搜搜吧建站时间:创建于2013年07月23日
    免责声明:本站所有的内容均来自互联网以及第三方作者自由发布,版权归原作者版权所有,搜搜吧不承担任何的法律责任,若有侵权请来信告知,我们立即删除!

    GMT+8, 2020-10-23 04:58 , Processed in 0.140279 second(s), 13 queries , MemCache On.

    快速回复 返回顶部 返回列表