这里是通过自己以前建站总结收集,和在学员建站过程中常遇到的dedecms安全漏洞的修复方法,供大家参考,希望对大家有所帮助。
后台文件任意上传漏洞dede/media_add.php修复方法
修复方法:
打开/dede/media_add.php(dede是你的后台文件夹,请自行修改)
搜索(大概在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();}
dedecms留言漏洞
修复方法:
打开/plus/guestbook/edit.inc.php
找到大概第55行的代码:(把【数据表前缀】更换为#@ )
$dsql->ExecuteNoneQuery("UPDATE `【数据表前缀】__guestbook` SET `msg`=\'$msg\', `posttime`=\'".time()."\' WHERE id=\'$id\' ");
修改为:(把【数据表前缀】更换为#@ )
$msg = addslashes($msg); $dsql->ExecuteNoneQuery("UPDATE `【数据表前缀】__guestbook` SET `msg`=\'$msg\', `posttime`=\'".time()."\' WHERE id=\'$id\' ");;
dedecms模版SQL注入漏洞
soft_add.php修复
打开/member/soft_add.php
找到大概第155行的代码:
$urls .= "{dede:link islocal=\'1\' text=\'{$servermsg1}\'} $softurl1 {/dede:link}rn";
修改为:
if (preg_match("#}(.*?){/dede:link}{dede:#sim", $servermsg1) != 1) { $urls .= "{dede:link islocal=\'1\' text=\'{$servermsg1}\'} $softurl1 {/dede:link}rn"; }
DedeCMS v5.7 注册用户任意文件删除漏洞
修复方法:
打开/member/inc/archives_check_edit.php
找到大概第92行的代码:
$litpic =$oldlitpic;
修改为:
$litpic =$oldlitpic; if (strpos( $litpic, \'..\') !== false || strpos( $litpic, $cfg_user_dir."/{$userid}/" ) === false) exit(\'not allowed path!\');
dedecms album_add.php SQL注入漏洞
修复方法:
打开/member/album_add.php
找到大概第221行的代码:
//保存到主表
在下面一行新增一句:
$mtypesid = intval($mtypesid);
dedecms 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) )
select_soft_post.php任意文件上传漏洞
修复方法:
打开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(); }