74cms某功能注入漏洞(有条件)

漏洞概要

缺陷编号:WooYun-2014-053968

漏洞标题:74cms某功能注入漏洞(有条件)

相关厂商:74cms.com

漏洞作者:phith0n

提交时间:2014-03-18 19:20

公开时间:2014-06-13 19:21

漏洞类型:SQL注射漏洞

危害等级:高

自评Rank:20

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

Tags标签:

漏洞详情

披露状态:

2014-03-18: 细节已通知厂商并且等待厂商处理中
2014-03-28: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2014-05-22: 细节向核心白帽子及相关领域专家公开
2014-06-01: 细节向普通白帽子公开
2014-06-11: 细节向实习白帽子公开
2014-06-13: 细节向公众公开

简要描述:

略鸡肋,分享出来。

详细说明:

最新版v3.4,更新时间20140310文件/plus/weixin.phpresponseMsg函数,使用$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];获得了post数据。所以,可以无视GPC。获得的数据是XML格式,我们一会发送数据包即可。继续看该函数:

当我们获得的post数据非空时,用simplexml_load_string解析xml,复制到各个变量中。没有进行任何过滤。继续看到:

这里有个判断,$_CFG[‘sina_apiopen’]必须不等于0 ,否则就会进入这个判断,最后exit整个文件,执行不到后面的注入的地方。所以这里是个鸡肋。必须管理员在后台开启新浪微博登陆,才能注入。而这个功能是默认不开启的。(不过很奇怪的是。。。这里明明是微信的相关功能。。。却验证的是新浪微博的开启状况。。。不忍吐槽)所以,我测试的时候手动到后台开启了新浪微博功能:

这个时候,我们再继续看刚才的函数:

看到这里就清楚了,直接把keyword带入查询。而keyword就是我们通过xml传进来的Content。

漏洞证明:

管理员后台开启新浪微博登录以后,发送post数据包

其中Content-Type不能是application/x-www-form-urlencoded,改成text/html,表示传过去的是文本内容。其中Content内容是注入代码。查看返回数据包:

注入成功。管理员用户名+密码+salt

修复方案:

过滤XML获得的数据。

漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2014-06-1319:21

厂商回复:

最新状态:

暂无

评价

  1. 2010-01-01 00:00 sn... 白帽子 | Rank:91 漏洞数:9)

    发了干嘛。我发的官方都不承认是漏洞,只会忽略然后自己悄悄修复。。这种垃圾厂商。。

  2. 2010-01-01 00:00 wefgod 白帽子 | Rank:1438 漏洞数:124)

    给力。

  3. 2010-01-01 00:00 无边落木 白帽子 | Rank:0 漏洞数:0)

    无良厂商

  4. 2010-01-01 00:00 Ares 白帽子 | Rank:20 漏洞数:2)

    无良厂商