文章目录
- 使用织梦建站,阿里云中反馈了许多漏洞
- 1、member文件夹下的漏洞
- 2、dedecms /include/payment/alipay.php支付模块注入漏洞修复方案
- 3、/include/common.inc.php文件漏洞
- 4、dedecms任意文件上传漏洞(select_soft_post.php)
- 5、织梦cms/include/uploadsafe.inc.php漏洞修复方法
- 6、dedecms后台文件任意上传漏洞(media_add.php)
- 7、 member/inc/inc_archives_functions.php文件漏洞
- 8、阿里云dedecms注入漏洞之/plus/guestbook/edit.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' ");

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

被折叠的 条评论
为什么被折叠?



