全新织梦dedecms5.7版上传至阿里云安装使用,云安全中心提示下图漏洞,会导致百度快照被劫持等一系列问题。
直接使用新的安装包就可以,或者是部分文件替换。
在评论处回复,自动获取下载链接
此处为隐藏内容,请评论后查看隐藏内容,谢谢!
织梦在安装到阿里云服务器后阿里云后台会提示media_add.php后台文件任意上传漏洞,引起的文件是后台管理目录下的media_add.php文件,下面跟大家分享一下这个漏洞的修复方法:
首先找到并打开后台管理目录下的media_add.php文件,在里面找到如下代码:
$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("你指定的文件名被系统禁止!",'java script:;');
exit();
} 添加完成后保存并替换原来的文件即可。
一定要注意分行,不分行是不能修复的。
漏洞描述:
dedecms注入漏洞
dedecms留言板注入漏洞。
/plus/guestbook/edit.inc.php 这个是一个dedecms留言板注入漏洞,因为没有对$msg过滤,导致可以任意注入,处理方案如下:
打开/plus/guestbook/edit.inc.php,搜索以下代码:
else if($job=='editok')
修改为:
else if($job=='editok') { $remsg = trim($remsg); /* 验证$g_isadmin */ if($remsg!='') { //管理员回复不过滤HTML if($g_isadmin) { $msg = "<div class=\\'rebox\\'>".$msg."</div>\n".$remsg; //$remsg <br><font color=red>管理员回复:</font> } else { $row = $dsql->GetOne("SELECT msg From `a15_guestbook` WHERE id='$id' "); $oldmsg = "<div class=\\'rebox\\'>".addslashes($row['msg'])."</div>\n"; $remsg = trimMsg(cn_substrR($remsg, 1024), 1); $msg = $oldmsg.$remsg; } } /* */ /* 对$msg进行有效过滤 */ $msg = addslashes($msg); /* */ $dsql->ExecuteNoneQuery("UPDATE `a15_guestbook` SET `msg`='$msg', `posttime`='"
志汇网络接手的一个企业站用的dedecms,这么成熟CMS怎么有这么多漏洞,百度快照都被劫持了,阿里云的云安全中心已经提示报警,接下来一个一个解决。
漏洞描述:
dedecms过滤逻辑不严导致上传漏洞。
修改/include/uploadsafe.inc.php文件
<?php
if(!defined('DEDEINC')) exit('Request Error!');
if(isset($_FILES['GLOBALS'])) exit('Request not allow!');
//为了防止用户通过注入的可能性改动了数据库
//这里强制限定的某些文件类型禁止上传
$cfg_not_allowall = "php|pl|cgi|asp|aspx|jsp|php3|shtm|shtml";
$keyarr = array('name', 'type', 'tmp_name', 'size');
if ($GLOBALS['cfg_html_editor']=='ckeditor' && isset($_FILES['upload']))
{
$_FILES['imgfile'] = $_FILES['upload'];
$CKUpload = TRUE;
unset($_FILES['upload']);
}
foreach($_FILES as $_key=>$_value)
{
foreach($keyarr as $k)
{
if(!isset($_FILES[$_key][$k]))
{
exit('Request Error!');
}
}
if( preg_match('#^(cfg_|GLOBALS)#', $_key) )
{
exit('Request var not allow for uploadsafe!');
}
$$_key = $_FILES[$_key]['tmp_name'];
${$_key.'_name'} = $_FILES[$_key]['name'];
${$_key.'_type'} = $_FILES[$_key]['type'] = preg_replace('#[^0-9a-z\.