漏洞概要
关注数(24)
关注此漏洞
漏洞标题:PHPYUN最新版任意文件读取漏洞
提交时间:2014-06-12 14:54
修复时间:2014-09-10 14:56
公开时间:2014-09-10 14:56
漏洞类型:设计缺陷/逻辑错误
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情
披露状态:
2014-06-12: 细节已通知厂商并且等待厂商处理中
2014-06-12: 厂商已经确认,细节仅向厂商公开
2014-06-15: 细节向第三方安全合作伙伴开放
2014-08-06: 细节向核心白帽子及相关领域专家公开
2014-08-16: 细节向普通白帽子公开
2014-08-26: 细节向实习白帽子公开
2014-09-10: 细节向公众公开
简要描述:
PHPYUN最新版任意问价你读取漏洞,第一次遇到这种漏洞哦!!!
详细说明:
刚刚研究了下二哥的XML实体注入:
WooYun: 百度某功能XML实体注入
感觉好高大上哦,从来没遇到过,这几天看PHPYUN,突然想到了这个问题。
文件weixin/model/index.class.php
这里将$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];通过simplexml_load_string解析后的内容,直接带入了$topTpl:
然而$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];就是直接获取的POST过来的XML内容,没有经过任何处理,最后将其echo出来了。
真个过程就是传一个XML的内容进去,然后输出一个XML的内容,那么我们结果XML实体注入不就可以读取服务器上的内容,然后再输出出来么?!
实际证明是可行的,见漏洞证明!
当然这里有一个问题就是:
在入口会检测一个字符串:
如果用户设置了wx_token就没办法了,但是这个wx_token默认是空的。
所以在默认条件下,没有wx_token时,这个$tmpStr == $signature==da39a3ee5e6b4b0d3255bfef95601890afd80709,这是一个固定的值了,我们是完全可以利用上面的漏洞读入任意文件。
漏洞证明:
读取/phpyun/robots.txt内容
发送请求:
这里要注意:
signature=da39a3ee5e6b4b0d3255bfef95601890afd80709
Content-Type: text/xml
如图:
修复方案:
默认安装时加上随机wx_token,或者处理输入的内容。
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:5
确认时间:2014-06-12 15:40
厂商回复:
微信参数不设置确实存在该情况,我们会尽快完善,感谢您的提供,不过360也同步出了该问题,时间还要稍早!
最新状态:
暂无