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

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

缺陷编号:wooyun-2011-02984

漏洞标题:phpcms 2008代码注射漏洞

相关厂商:phpcms

漏洞作者: teamtopkarl

提交时间:2011-10-12 16:51

修复时间:2011-11-11 16:51

公开时间:2011-11-11 16:51

漏洞类型:设计不当

危害等级:高

自评Rank:5

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2011-10-12: 细节已通知厂商并且等待厂商处理中
2011-10-13: 厂商已经确认,细节仅向厂商公开
2011-10-16: 细节向第三方安全合作伙伴开放
2011-12-07: 细节向核心白帽子及相关领域专家公开
2011-12-17: 细节向普通白帽子公开
2011-12-27: 细节向实习白帽子公开
2011-11-11: 细节向公众公开

简要描述:

phpcms2008的某参数可以进行代码注入。

详细说明:

phpcms 2008的代码中由于对模板参数处理不当,导致可以任意执行任意代码文件。
具体的代码触发路径是这样的:
phpcms/yp/product.php中获取pagesize参数,拼接为$urlrule变量。随后将之带入yp目录下的product.html模板之中。在模板执行后,进入到get函数处理中,最后经过get->pages->pageurl函数,最终触发pageurl的如下代码:

eval("\$url = \"$urlrule\";");


在这里,将未过滤的$urlrule通过eval赋值。这里可以使用${@phpcode}的语法执行php函数,最终造成漏洞。(进入最后pageurl逻辑前,有个要求是product数目必须超过0,所以没有测试数据的本地新搭建环境没法复现,必须加一些测试数据才行)

漏洞证明:

http://demo.phpcms.cn/yp/product.php?pagesize=${@print(md5(admin))}
http://demo.phpcms.cn/yp/product.php?pagesize=${@phpinfo()}

修复方案:

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


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:5

确认时间:2011-10-13 10:03

厂商回复:

5

最新状态:

暂无