阿里云提示dedecms织梦常见的sql注入漏洞以及其他漏洞修复

用过阿里云ECS的小伙伴们都收到过提示吧,web-cms给出的安全提示,比较常见的就是织梦cms系统了,各种漏洞都需要修复,如果放任不管就给了黑客可乘之机了。下面学技巧就整合了各种php文件和sql漏洞的修复方法。

一、阿里云dedecms变量覆盖漏洞导致任意文件上传select_soft_post.php

dedecms变量覆盖漏洞导致任意文件上传修复:/include/dialog/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();
}

添加完成后保存替换原来的文件,然后就可以去阿里云后台验证这个漏洞了。

二、dedecms后台文件任意上传漏洞

下面跟大家分享一下这个漏洞的修复方法:首先找到并打开后台管理dede目录下的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 SQL注入漏洞

dedecms的/dedecms/member/album_add.php文件中,对输入参数mtypesid未进行int整型

修复方法:

打开dedecms/member/album_add.php文件,查找以下代码(大约220行左右)

$$description = HtmlReplace($$description, -1);//2011.06.30 增加html过滤 (by:织梦的鱼)

将上面的代码替换为:

$$description = HtmlReplace($$description, -1);//2011.06.30 增加html过滤 (by:织梦的鱼)
$$mtypesid = intval($$mtypesid);

四、dedecms cookies泄漏导致SQL漏洞

dedecms的文章发表表单中泄漏了用于防御CSRF的核心cookie,同时在其他核心支付系统也使用了同样的cookie进行验证,黑客可利用泄漏的cookie通过后台验证,进行后台注入。修复方法如下:

找到这个文件/member/article_add.php

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)) )

找到\inc\inc_archives_functions.php文件,将下面这方代码

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."dls6.com".$$cfg_cookie_encode)."\" />";

然后去阿里云后台验证就发现漏洞已失效。

五、DedeCMS v5.7 注册用户任意文件删除漏洞

dedecms前台任意文件删除(需要会员中心),发表文章处,对于编辑文章的时候图片参数处理不当,导致了任意文件删除。

漏洞文件:/member/inc/archives_check_edit.php

漏洞描述:注册会员用户可利用此漏洞任意删除网站文件。

修复方法:打开/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模版SQL注入漏洞

问题原因:dedecms的/member/soft_add.php中,对输入模板参数$$servermsg1未进行严格过滤,导致攻击者可构造模版闭合标签,实现模版注入进行GETSHELL。

关于织梦dedecms模板SQL注入漏洞修复方法,主要是文件/member/soft_add.php。

搜索: $$urls .= "{dede:link islocal='1' text='{$$servermsg1}'} $$softurl1 {/dede:link}\r\n"; (大概在154行左右)

替换成

if (preg_match("#}(.*?){/dede:link}{dede:#sim", $$servermsg1) != 1) { $$urls .= "{dede:link islocal='1' text='{$$servermsg1}'} $$softurl1 {/dede:link}\r\n"; }

七、dedecms上传漏洞

漏洞描述:dedecms过滤逻辑不严导致上传漏洞。

漏洞路径:/include/uploadsafe.inc.php

解决方法:

1、打开include/uploadsafe.inc.php文件,找到第8行或者搜索

$$cfg_not_allowall = "php|pl|cgi|asp|aspx|jsp|php3|shtm|shtml";

替换为:

$$cfg_not_allowall = "php|pl|cgi|asp|aspx|jsp|php3|shtm|shtml|htm|html";

2、找到第52行或者搜索

$$image_dd = @getimagesize($$$$_key);

在其下面添加:

if($$image_dd == false){ continue; }

八、dedecms注入漏洞

dedecms留言板注入漏洞的修复方法:

/plus/guestbook/edit.inc.php 这个是一个dedecms留言板注入漏洞,因为没有对$$msg过滤,导致可以任意注入,处理方案如下:

打开/plus/guestbook/edit.inc.php,搜索代码:

$$msg = HtmlReplace($$msg, -1);

修改为:在它下面加入

$$msg = addslashes($$msg);

学技巧提醒大家,无论怎么修改,都要提前备份一下在进行修改,以免照成不可逆转的错误。

+