漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0118944
漏洞标题:凤凰网客户端远程命令执行附加详细利用分析
相关厂商:凤凰网
漏洞作者: 小手冰凉
提交时间:2015-06-08 11:08
修复时间:2015-09-09 20:30
公开时间:2015-09-09 20:30
漏洞类型:远程代码执行
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-06-08: 细节已通知厂商并且等待厂商处理中
2015-06-11: 厂商已经确认,细节仅向厂商公开
2015-06-14: 细节向第三方安全合作伙伴开放
2015-08-05: 细节向核心白帽子及相关领域专家公开
2015-08-15: 细节向普通白帽子公开
2015-08-25: 细节向实习白帽子公开
2015-09-09: 细节向公众公开
简要描述:
凤凰网的新闻,看起来简直停不下来!
详细说明:
凤凰网客户端远程命令执行,这次就以你为跳板了
多个问题串起来达到远程命令执行的目的。
0x00 版本
目标凤凰新闻最新版(fenghuangxinwen_95.apk 4.4.3)
0x01 命令执行
这个版本的凤凰新闻编译的安卓目标版本过低导致命令执行漏洞
测试
凤凰新闻阅读普通新闻的时候打开的正好是webview,我们将地址指向poc结果如下
0x02 接口过滤不严&新闻伪造
通常找app提供的接口都是去AndroidManifest.xml文件中找注册的接受类,然后去反编译分析源码,那样有时候反编译不出来,这里我们换个不同的思路。随便打开一个新闻,然后使用分享功能,把分享信息中的URL复制出来,在手机浏览器中打开,你会发现这个时候就会自动跳转到新闻客户端,这个过程其实就是手机浏览器根据网页上的提供的app的本地接口打开app,并且通常情况下都会传递一个数据过去,例如URL。这样也就以为这js中会暴露出这个app的提供的接口的使用方式。
使用这种方式我们发现了如下接口
在js中用上面这个地址就会直接跳转到app。其中的URL是一个凤凰新闻的地址(例子:http://api.iclient.ifeng.com/ipadtestdoc?aid=99008381),返回的是一个json,其中包含这个新闻的所有信息。然后这个app就会按照这个json文件把新闻展示在页面上。整个过程完全没有验证URL或者是信息来源。
可用于新闻伪造,中奖信息欺骗等。
测试:
建立两个网页URLA和URLB
在URLA中使用js跳转到comifengnewsclient://call?type=doc&id=URLB。URLB中则返回一个虚假新闻的json,效果如图:
地址:http://31.220.48.93:28214/if/fakenewsjm.html
远程命令执行
你可能已经注意到 返回这个(http://api.iclient.ifeng.com/ipadtestdoc?aid=99008381)包含新闻信息的json中,出现了html标签!这也就以为着这写信息非常有可能是展示在webview中的。首先的想法就是在json的title字段添加js语句,发现不能执行,百思不得其姐!后来突然想到既然能加载图片,那图片的事件呢?果断在之前的字段加上
发现弹窗果然如期出现了!这样就好办了,配合之前的命令执行漏洞,直接用onerror执行window.location来跳转到执行页面就行了。
测试:
用安卓浏览器打开http://31.220.48.93:28214/if/ls_0.html就会跳转到凤凰新闻并执行命令
远程执行列sd卡目录并显示:
地址:http://31.220.48.93:28214/if/ls_0.html
然后跳转到app加载http://31.220.48.93:28214/if/new.html的json
这个json中包含下一步跳转的js,最后成功打开http://31.220.48.93:28214/if/ls_1.html并执行命令显示
漏洞证明:
如上
修复方案:
上调编译版本
接口过滤
版权声明:转载请注明来源 小手冰凉@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:10
确认时间:2015-06-11 20:29
厂商回复:
非常感谢您对凤凰网信息安全的帮助,我们正在跟进解决。
最新状态:
暂无