Dede漏洞5:Cookies泄漏导致SQL漏洞修复方法
文件/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)))
文件/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) ."\" /》";
Dede漏洞6: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) )
增加Session过滤判断。
Dede漏洞7:变量初始化导致本地注入修复方法
文件/include/dedesql.class.php,大概在590行,搜索:
if(isset($GLOBALS['arrs1']))
修改为:
$arrs1 = array();
$arrs2 = array();
if(isset($GLOBALS['arrs1']))
也就是先定义好$arrs1、$arrs2,如果之前定义过,这一条忽略。
Dede漏洞8:支付模块注入漏洞修复方法
文件include/payment/alipay.php,大概在137行,搜索:
$order_sn = trim($_GET['out_trade_no']);
修改为:
$order_sn = trim(addslashes($_GET['out_trade_no']));
增加addslashes转换过滤。
Dede漏洞9:注册用户任意文件删除漏洞修复方法
文件/member/inc/archives_check_edit.php,大概在92行,搜索:
$litpic =$oldlitpic;
替换为:
$litpic =$oldlitpic;
if (strpos( $litpic, '..') !== false || strpos( $litpic, $cfg_user_dir."/{$userid}/" ) === false) exit('你没有此文件的权限!');
增加权限判断。
Dede漏洞10:留言板注入漏洞修复方法
文件/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' ");
先对数据addslashes转码过滤。
以上,是针对织梦DeDeCMS v5.7版本的漏洞分析、漏洞修复方法大全,如有疑问,欢迎大家探讨。
点击加载更多