阿里云提示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);
学技巧提醒大家,无论怎么修改,都要提前备份一下在进行修改,以免照成不可逆转的错误。