当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0104157

漏洞标题:phpcms前台任意代码执行(有php版本限制)

相关厂商:phpcms

漏洞作者: xcrypt

提交时间:2015-03-27 14:40

修复时间:2015-06-25 16:32

公开时间:2015-06-25 16:32

漏洞类型:命令执行

危害等级:高

自评Rank:18

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-03-27: 细节已通知厂商并且等待厂商处理中
2015-03-27: 厂商已经确认,细节仅向厂商公开
2015-03-30: 细节向第三方安全合作伙伴开放
2015-05-21: 细节向核心白帽子及相关领域专家公开
2015-05-31: 细节向普通白帽子公开
2015-06-10: 细节向实习白帽子公开
2015-06-25: 细节向公众公开

简要描述:

还是string2array函数,之前有人提到过了,但这次在前台找到了利用方法。20150305的补丁仍没有修复。

详细说明:

在后台利用该函数执行代码比较简单,但前台利用需要使用到mysql和php的2个小特性。
首先利用了mysql的一个特性,mysql在存储数据的时候会根据当前数据库的字符集来校验数据,发现非法数据时会抛弃其后续数据。
当表的字符集是utf8_general_ci时,测试SQL:Insert into table values (concat('ab', 0x80, 'cd')),因为0x80不是有效的UTF-8字符,所以只有ab被写入数据库中,cd会被截断。
当表的字符集是gbk_chinese_ci时,测试SQL:Insert into table values (concat('ab', 0x8027, 'cd')),因为0x8027不是有效的gbk字符,所以只有ab被写入数据库中,cd会被截断。
第二个是利用了php语法的松散性。

10.jpg


以上代码语法上存在错误,但在php 5.2.17上可以正常运行,在5.3.29和5.4.30上测试失败。所以该漏洞在较高版本的php上暂时没法利用。

漏洞证明:

5.jpg


投票结果展示的关键代码。

11.jpg


$data对应数据库中v9_vote_data表的data字段。正常的值如下

9.jpg


数组的键名可控,来自提交的radio数组,然后经过了array2string函数处理。

13.jpg


构造如下post数据,gbk和utf-8版本利用代码相同。

7.jpg


数据库中的值如下

12.jpg


14.jpg

修复方案:

eval里面的$data外面加上双引号。

版权声明:转载请注明来源 xcrypt@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2015-03-27 16:30

厂商回复:

感谢提出

最新状态:

暂无


漏洞评价:

评论

  1. 2015-03-27 14:48 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    料不少

  2. 2015-03-27 14:49 | 核心粉木耳 ( 路人 | Rank:14 漏洞数:2 | 。。。)

    需不需要登陆 这是个问题。。。。

  3. 2015-03-27 14:52 | xsser 认证白帽子 ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)

    @核心粉木耳 不需要

  4. 2015-03-27 14:54 | 核心粉木耳 ( 路人 | Rank:14 漏洞数:2 | 。。。)

    mark

  5. 2015-03-27 15:26 | roker ( 普通白帽子 | Rank:357 漏洞数:108 )

    卧槽。

  6. 2015-03-27 16:27 | pandas ( 普通白帽子 | Rank:585 漏洞数:58 | 国家一级保护动物)

    关注下

  7. 2015-03-30 16:51 | f4ckbaidu ( 普通白帽子 | Rank:182 漏洞数:23 | 开发真是日了狗了)

    @finger 漏洞求审核http://www.wooyun.org/bugs/wooyun-2015-098828/trace/ad7d391ea57be3e37014046a5960faa7

  8. 2015-03-30 22:08 | 忆苦思甜 ( 实习白帽子 | Rank:65 漏洞数:25 )

    mark

  9. 2015-03-31 01:36 | 秋风 ( 普通白帽子 | Rank:438 漏洞数:44 | 码农一枚,关注互联网安全)

    NB!

  10. 2015-04-01 12:18 | Black Angel ( 普通白帽子 | Rank:163 漏洞数:35 | 最神奇的一群人,智慧低调又内敛,俗称马甲...)

    不会是投票那个吧?!这就给放出来了?

  11. 2015-04-01 14:40 | Azui ( 路人 | Rank:25 漏洞数:10 | 用一只黑色铅笔画一出舞台默剧。)

    无需会员中心= =..

  12. 2015-04-01 14:52 | Black Angel ( 普通白帽子 | Rank:163 漏洞数:35 | 最神奇的一群人,智慧低调又内敛,俗称马甲...)

    我知道了 就是投票那个.. php需低于5.3

  13. 2015-04-01 14:57 | xcrypt ( 实习白帽子 | Rank:87 漏洞数:9 | 暂无介绍~)

    @Black Angel 其他地方有相关细节?

  14. 2015-04-01 15:37 | Black Angel ( 普通白帽子 | Rank:163 漏洞数:35 | 最神奇的一群人,智慧低调又内敛,俗称马甲...)

    @xcrypt 我不知道,,我啥都不知道~

  15. 2015-04-01 15:48 | 岩少 ( 普通白帽子 | Rank:586 漏洞数:171 | 破晓团队)

    又掀起不小的风波

  16. 2015-04-20 14:40 | saline ( 普通白帽子 | Rank:231 漏洞数:32 | Focus On Web Secur1ty)

    @Black Angel 气死就是咯~

  17. 2015-04-26 11:41 | 牛肉包子 ( 普通白帽子 | Rank:254 漏洞数:64 )

    为啥php版本要低于5.3

  18. 2015-04-26 12:56 | 微尘 ( 普通白帽子 | Rank:218 漏洞数:74 )

    mark~~

  19. 2015-06-07 19:59 | 明月影 ( 路人 | Rank:12 漏洞数:8 | 学姿势,学思路。)

    料多来的