web建站教程
  1. 首页
  2. vuejs
  3. js
  4. 好玩
  5. seo教程
  6. 前端知识
  7. 百度echarts
  8. 更多
    php入门
    nodejs
    mockjs
    reactjs
    mysql
    wordpress
    织梦cms
    帝国cms
    git教程
    IT知识
    模板大全
    休息站

织梦网站漏洞修复大全(图文)

284 ℃
     

  经常在网上听人说,织梦是漏洞大王, 我觉得这句话应该纠正一下,首先织梦是一个开源的cms,用得人相对其它cms要多,自然研究它的人就多,一旦研究的人多了,漏洞自然就多了,再加上官方很少对这些漏洞进行一个修复,纯粹靠一些白帽子研究修复,而且用它的人很多对安全这方面的意识不强,下面我们来看看有哪些漏洞以及如何进行一个修复
 

 任意文件上传漏洞修复

      一、/include/dialog/select_soft_post.php文件,搜索(大概在72行的样子)
      $fullfilename = $cfg_basedir.$activepath.'/'.$filename;
      修改为
      if (preg_match('#.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) { ShowMsg("你指定的文件名被系统禁止!",'javascript:;'); exit(); } $fullfilename = $cfg_basedir.$activepath.'/'.$filename;;

  二、后台文件任意上传漏洞

      /dede/media_add.php或者/你的后台名字/media_add.php

   搜索$fullfilename = $cfg_basedir.$filename;(大概在69行左右)
      替换成      
      if (preg_match('#.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) { ShowMsg("你指定的文件名被系统禁止!",'javascript:;'); exit(); } $fullfilename = $cfg_basedir.$filename;

     三、 /include/uploadsafe.inc.php (有2个地方:)

  1、搜索 ${$_key.'_size'} = @filesize($$_key);
      }
      (大概在42,43行左右)
      替换成    
      ${$_key.'_size'} = @filesize($$_key); 
      } $imtypes = array("image/pjpeg", "image/jpeg", "image/gif", "image/png", "image/xpng", "image/wbmp", "image/bmp"); if(in_array(strtolower(trim(${$_key.'_type'})), $imtypes)) { $image_dd = @getimagesize($$_key); if($image_dd == false){ continue; } if (!is_array($image_dd)) { exit('Upload filetype not allow !'); } }
      如果修改后出现文章页面空白页,请仔细查看代码是否多了或者少了大括号},本文件44行是空的,没有代码,请注意。

      2、搜索 $image_dd = @getimagesize($$_key);(大概在53行左右)
      替换成     
      $image_dd = @getimagesize($$_key); if($image_dd == false){ continue; }

     老规矩大红色地方标记了修改的地方,然后保存,接着备份原文件,比如文件名变为uploadsafe.inc.php.16.08.09.bak。然后上传修改好的文件即可。

(SQL)注入漏洞修复

     一、 /include/filter.inc.php文件,搜索(大概在46行的样子)
      return $svar;
      修改为
      return addslashes($svar);

      二、/member/mtypes.php文件,搜索(大概在71行的样子)
      $query = "UPDATE `dede_mtypes` SET mtypename='$name' WHERE mtypeid='$id' AND mid='$cfg_ml->M_ID'";
      修改为
      $id = intval($id); $query = "UPDATE `dede_mtypes` SET mtypename='$name' WHERE mtypeid='$id' AND mid='$cfg_ml->M_ID'";

      三、 /member/pm.php文件,搜索(大概在65行的样子)
      $row = $dsql->GetOne("SELECT * FROM `dede_member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')");
      修改为
      $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行的样子)
      $dsql->ExecuteNoneQuery("UPDATE `dede_guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' ");
      修改为
      $msg = addslashes($msg); $dsql->ExecuteNoneQuery("UPDATE `dede_guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' ");;

      五、 /plus/search.php文件,搜索(大概在109行的样子)
      $keyword = addslashes(cn_substr($keyword,30));
      修改为
      $typeid = intval($typeid); $keyword = addslashes(cn_substr($keyword,30));

  六、/member/soft_add.php   搜索(大概在154行左右)

      搜索$urls .= "{dede:link islocal='1' text='{$servermsg1}'} $softurl1 {/dede:link} ";
      替换成      
      if (preg_match("#}(.*?){/dede:link}{dede:#sim", $servermsg1) != 1) { $urls .= "{dede:link islocal='1' text='{$servermsg1}'} $softurl1 {/dede:link} "; }

     七、cookies泄漏导致SQL漏洞修复

  1、/member/article_add.php文件,搜索(大概在83行的样子)
      if (empty($dede_fieldshash) || $dede_fieldshash != md5($dede_addonfields.$cfg_cookie_encode))
      修改为
      if (empty($dede_fieldshash) || ( $dede_fieldshash != md5($dede_addonfields . $cfg_cookie_encode) && $dede_fieldshash != md5($dede_addonfields . 'anythingelse' . $cfg_cookie_encode))) 

  2、/member/inc/inc_archives_functions.php文件,搜索(大概在239行的样子)
      echo "<input type="hidden" name="dede_fieldshash" value="".md5($dede_addonfields.$cfg_cookie_encode)."" />";
      修改为
      echo "<input type="hidden" name="dede_fieldshash" value="". md5($dede_addonfields . 'anythingelse' .$cfg_cookie_encode) ."" />";

    SESSION变量覆盖导致SQL注入漏洞

      include/common.inc.php文件,搜索(大概在68行的样子)

   if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#',$svar) )
      修改为
      if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#',$svar) )

支付模块注入漏洞

  include/payment/alipay.php文件,搜索(大概在137行的样子)
      $order_sn = trim($_GET['out_trade_no']);
      修改为
      $order_sn = trim(addslashes($_GET['out_trade_no']));;

 

 变量为初始化导致本地变量注入

  /include/dedesql.class.php文件,搜索(大概在590行的样子)
      if(isset($GLOBALS['arrs1']))
      修改为
      $arrs1 = array(); $arrs2 = array(); if(isset($GLOBALS['arrs1']))

      如果之前定义过$arrs1或$arrs2的,请调整比对代码。

关于织梦漏洞的修复就说到这里了,这只是笔者已知的漏洞,当然可能还有很多其它漏洞笔者不知道的.也希望这些能够帮助到大家

iis环境安全测试报响应头缺失或不安全漏洞解决办法

帝国cms如何解决360检测出“[高危]SQL注入漏洞(盲

标签: 漏洞

上面是“织梦网站漏洞修复大全(图文)”的全面内容,想了解更多关于 织梦cms 内容,请继续关注web建站教程。

当前网址:https://ipkd.cn/webs_149.html

声明:本站提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请发送到邮箱:admin@ipkd.cn,我们会在看到邮件的第一时间内为您处理!

当前位置: 网站首页 > 织梦cms
本文共计4530个字,预计阅读时长31分钟
生活小工具,收录了80多款小工具
上一篇: 推荐一款可免费商用圆体字库——江城圆体
下一篇: 推荐一款由字制区设计团队的免费综艺字体——字制区喜脉体
x 打工人ai神器