最新 DEDECMS 存 SQL 注入 0day 漏洞 - 开源中国社区
最新 DEDECMS 存 SQL 注入 0day 漏洞
落舞者 2012年05月02日

最新 DEDECMS 存 SQL 注入 0day 漏洞

落舞者 落舞者 发布于2012年05月02日 收藏 4 评论 20

有免费的MySQL,为什么还要买? >>>  

      4月29日消息:国内安全研究团队“知道创宇”称截获到最新DEDECMS SQL注入0day,DEDECMS官网目前提供下载的最新版5.7也受影响,截止本告警发出时官方尚未给出补丁或解决方案,此漏洞利用简单且dedecms安装之后默认即开启漏洞模块。

知道创宇给出三种临时解决方案:

方案一、临时补丁,需要四步

1. 确保您的magic_quotes_gpc = On

详细开启方式:打开php安装目录中的php.ini(若您使用的是appserv等集成环境,php.ini可能在系统盘符:\windows\php.ini),搜索magic_quotes_gpc,将其设置为On。

2.

/plus/carbuyaction.php 22行附近即

if($cfg_mb_open == 'N') { ShowMsg("系统关闭了会员功能,因此你无法访问此页面!","javascript:;"); exit(); }

下面添加一行代码

$rs =array();

3.

在 member/ajax_membergroup.php 33行附近即

if(empty($membergroup)){ echo "您还没有设置分组!"; exit; }

下面加入如下代码:

if(strpos($membergroup,"'")){ echo "SQL注入防护临时补丁,知道创宇安全团队提醒您关注官方补丁!"; exit; }

4.

原member/ajax_membergroup.php 36 行附近的

$row = $dsql->GetOne("SELECT groupname FROM #@__member_group WHERE mid = {$cfg_ml->M_ID} AND id={$membergroup}");

修改为

$row = $dsql->GetOne("SELECT groupname FROM #@__member_group WHERE mid = {$cfg_ml->M_ID} AND id='{$membergroup}'");

方案二、以网站管理员身份后台禁用会员功能

系统 -> 系统基本参数 -> 会员设置 -> 是否开启会员功能 改为(否)

方案三、若贵站不需要会员功能,可考虑直接重命名或删除存在漏洞的文件 /member/ajax_membergroup.php,最暴力却最有效的方式。

注明:本文给出的临时补丁仅供临时防御,对系统造成轻微影响尚未进行系统测试,具体补丁等需等待官方补丁。

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:最新 DEDECMS 存 SQL 注入 0day 漏洞
分享
评论(20)
最新评论
0
问:如果是发表评论,你能不拼吗?如果是条件查询查询,比如这个页面右上角的“搜索”,你能不拼吗?我实在想象不出“select * from t_table_name where id=?”能通吃?

回复:可以。
0

引用来自“风筝上的少年”的评论

引用来自“vk14311”的评论

引用来自“opal”的评论

怎么到现在还有系统在用拼字符串的方式执行SQL语句?

php好多cms系统都是拼sql执行sql语句的。

肯定的啊,php程序员一般不懂什么SQL预编译,变量绑定这类知识。即使PHP5有了PDO,也还没普及,php程序员也不懂PDO和拼接字符串相比到底有什么好处。

其实最主要的还是在程序里面一定要加escape_string即便是拼字符串也没sql注入的风险。
0

引用来自“opal”的评论

怎么到现在还有系统在用拼字符串的方式执行SQL语句?

拼字符串不是问题,拼字符串增加了程序的灵活性,关键是要检查用户输入的合法性,和做必要的字符串转换。
0

引用来自“opal”的评论

引用来自“Troy”的评论

引用来自“opal”的评论

怎么到现在还有系统在用拼字符串的方式执行SQL语句?

那你用什么方式执行sql的?

最起码用这种:select * from t_table_name where id=?

如果是发表评论,你能不拼吗?如果是条件查询查询,比如这个页面右上角的“搜索”,你能不拼吗?我实在想象不出“select * from t_table_name where id=?”能通吃?
0

引用来自“vk14311”的评论

引用来自“opal”的评论

怎么到现在还有系统在用拼字符串的方式执行SQL语句?

php好多cms系统都是拼sql执行sql语句的。

肯定的啊,php程序员一般不懂什么SQL预编译,变量绑定这类知识。即使PHP5有了PDO,也还没普及,php程序员也不懂PDO和拼接字符串相比到底有什么好处。
0

引用来自“opal”的评论

怎么到现在还有系统在用拼字符串的方式执行SQL语句?

php好多cms系统都是拼sql执行sql语句的。
0
这是我用dedecms以来第3次出现大漏洞了
果断全部换drupal
文明用语
0

引用来自“滔哥”的评论

DEDE
HEHE
HAHA
ADAD

+1
0

引用来自“Troy”的评论

引用来自“俞慧涛”的评论

引用来自“Troy”的评论

引用来自“opal”的评论

引用来自“Troy”的评论

引用来自“opal”的评论

怎么到现在还有系统在用拼字符串的方式执行SQL语句?

那你用什么方式执行sql的?

最起码用这种:select * from t_table_name where id=?

程序里面还不是一样要拼,只不过用了placeholders,可以防注入

如果用orm的话通过criteria组装sql的话还没有不拼的,只要最后执行sql都是组合起来的。

那还是少了一步的么。确实也方便一些,织梦绝对的极品的东西呀。谁用谁害怕。。

不知道你说的少了一步是哪一步,

织梦我用它的时候应该挺早的了,

那时候还是0.8版本,应该是04年,好处是生成html静态文件,

07年以后就没再用过了,

不过说实话织梦的产品功能设计还是不错的,很多做垃圾站的都用,

只不过里面的编码和程序设计很糟糕,里面的东西光看看文件名就乱糟糟的。

我是回贴的。说在操作的时候使用?后面程序来替换的方法,一是防注入,第二点还可以省一些代码,少了这么一步。。嗯。。
0

引用来自“俞慧涛”的评论

引用来自“Troy”的评论

引用来自“opal”的评论

引用来自“Troy”的评论

引用来自“opal”的评论

怎么到现在还有系统在用拼字符串的方式执行SQL语句?

那你用什么方式执行sql的?

最起码用这种:select * from t_table_name where id=?

程序里面还不是一样要拼,只不过用了placeholders,可以防注入

如果用orm的话通过criteria组装sql的话还没有不拼的,只要最后执行sql都是组合起来的。

那还是少了一步的么。确实也方便一些,织梦绝对的极品的东西呀。谁用谁害怕。。

不知道你说的少了一步是哪一步,

织梦我用它的时候应该挺早的了,

那时候还是0.8版本,应该是04年,好处是生成html静态文件,

07年以后就没再用过了,

不过说实话织梦的产品功能设计还是不错的,很多做垃圾站的都用,

只不过里面的编码和程序设计很糟糕,里面的东西光看看文件名就乱糟糟的。
0

引用来自“Troy”的评论

引用来自“opal”的评论

引用来自“Troy”的评论

引用来自“opal”的评论

怎么到现在还有系统在用拼字符串的方式执行SQL语句?

那你用什么方式执行sql的?

最起码用这种:select * from t_table_name where id=?

程序里面还不是一样要拼,只不过用了placeholders,可以防注入

如果用orm的话通过criteria组装sql的话还没有不拼的,只要最后执行sql都是组合起来的。

那还是少了一步的么。确实也方便一些,织梦绝对的极品的东西呀。谁用谁害怕。。
0

引用来自“opal”的评论

引用来自“Troy”的评论

引用来自“opal”的评论

怎么到现在还有系统在用拼字符串的方式执行SQL语句?

那你用什么方式执行sql的?

最起码用这种:select * from t_table_name where id=?

程序里面还不是一样要拼,只不过用了placeholders,可以防注入

如果用orm的话通过criteria组装sql的话还没有不拼的,只要最后执行sql都是组合起来的。
0
hoho
0
DEDE
HEHE
HAHA
ADAD
0
哈哈, 我知道了, 肯定是从cnbeta复制过来的
0

引用来自“Troy”的评论

引用来自“opal”的评论

怎么到现在还有系统在用拼字符串的方式执行SQL语句?

那你用什么方式执行sql的?

最起码用这种:select * from t_table_name where id=?
0
DEDECMS 的噩梦~
0

引用来自“opal”的评论

怎么到现在还有系统在用拼字符串的方式执行SQL语句?

那你用什么方式执行sql的?
0
织梦,号称,烂站建设器!
0
怎么到现在还有系统在用拼字符串的方式执行SQL语句?
顶部