织梦漏洞修复大全(使用织梦建站,有许多漏洞)现在整理了一些

本文整理了使用织梦建站时遇到的各种安全漏洞,包括member文件夹下的漏洞、支付模块注入、/include/common.inc.php文件漏洞、任意文件上传漏洞等,并提供了详细的修复方案和代码修改建议。

使用织梦建站,阿里云中反馈了许多漏洞

现在给大家整理一下织梦的漏洞,建议收藏,会经常更新

1、member文件夹下的漏洞

如果用不到会员功能,建议直接删除member文件夹


2、dedecms /include/payment/alipay.php支付模块注入漏洞修复方案

漏洞名称:dedecms支付模块注入漏洞

漏洞描述:DEDECMS支付插件存在SQL注入漏洞,此漏洞存在于/include/payment/alipay.php文件中,对输入参数$_GET[‘out_trade_no’]未进行严格过滤。

解决方案:
大约在136
$order_sn = trim($_GET['out_trade_no']);
修改为

$order_sn = trim(addslashes($_GET['out_trade_no']));

3、/include/common.inc.php文件漏洞

在 /include/common.inc.php 中
找到注册变量的代码
foreach(Array('_GET','_POST','_COOKIE') as $_request) { foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v); }
修改为

foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
         foreach($$_request as $_k => $_v) {
                    if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) ){
                            exit('Request var not allow!');
                   }
                    ${$_k} = _RunMagicQuotes($_v);
    }
}

3.2 dedecms SESSION变量覆盖导致SQL注入

漏洞名称:dedecms SESSION变量覆盖导致SQL注入
找到大概第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) )

再找到大概第90行的代码:
if( strlen($val)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#',$val) )
修改为:

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

这样就在织梦的变量注册入口进行了通用统一防御,禁止SESSION变量的传入。


4、dedecms任意文件上传漏洞(select_soft_post.php)

文件路径:/include/dialog/select_soft_post.php
原因:在获取完整文件名时,没有将会对服务器造成危害的文件格式过滤掉,因此需要手动添加代码过滤

解决方法:
在 select_soft_post.php 中找到如下代码:
$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();
}

5、织梦cms/include/uploadsafe.inc.php漏洞修复方法

文件路径:/include/uploadsafe.inc.php。
漏洞原因:dedecms过滤逻辑不严导致上传漏洞。
1、${$_key.'_size'} = @filesize($$_key);
替换成

 ${$_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 !'); } 

2、 $image_dd = @getimagesize($$_key); (大概在53行左右)
替换成

$image_dd = @getimagesize($$_key); if($image_dd == false){ continue; }

6、dedecms后台文件任意上传漏洞(media_add.php)

文件:media_add.php
路径:…/dede/media_add.php
解决方案:
查找文件位置:/dede/media_add.php ,大概在69行左右,找到:
$fullfilename = $cfg_basedir.$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(); 
} 

7、 member/inc/inc_archives_functions.php文件漏洞

漏洞名称:织梦DEDECMS cookies泄漏导致SQL漏洞修复
织梦DEDECMS cookies泄漏导致SQL漏洞修复方法,影设计整理如下:
打开文件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) ."\" />";

红色地方标记了修改的地方

8、阿里云dedecms注入漏洞之/plus/guestbook/edit.inc.php修复方案

找到/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' ");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值