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

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

缺陷编号:wooyun-2014-063533

漏洞标题:蝉游记从web到IOS到Android漏洞组合

相关厂商:chanyouji.com

漏洞作者: 摄影会长

提交时间:2014-06-05 07:57

修复时间:2014-07-23 20:28

公开时间:2014-07-23 20:28

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

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-06-05: 细节已通知厂商并且等待厂商处理中
2014-06-05: 厂商已经确认,细节仅向厂商公开
2014-06-15: 细节向核心白帽子及相关领域专家公开
2014-06-25: 细节向普通白帽子公开
2014-07-05: 细节向实习白帽子公开
2014-07-23: 细节向公众公开

简要描述:

你家CEO头像把我吓着了,赶紧发点东西压压惊。。。 标题党

详细说明:

进入正题:
Web
婵游记我看了下CEO的介绍:就几个人用4个月把应用做出来上线。那先从网站看起,
看了下联合创始人Quake Wang的github
https://github.com/quake/quake.github.com/blob/master/slides/huohua/index.html

1.png


用Ruby on Rails 写的,嗯 ,好框架~
看了一下端口,开了443
用 CVE-2014-0160的脚本测试了下漏洞存在,

2.png


本来到这里 测试over,但想想太对不起纯银的头像了。
这里看了下dump出内存的东西,解码后 浏览下
没有常规的帐号,密码 cookie。
研究了一下数据 判断这应该是手机app交互的接口。
IOS
挂起burp用iphone打开应用,

3.png


测试没错
请求是用authorization进行的认证

GET /api/tokens.json HTTP/1.1
Host: chanyouji.com
Proxy-Connection: close
Accept-Encoding: gzip
Authorization: Basic *************M6eA==
User-Agent: iPhone5,2;iPhone OS;7.1;2.3
Connection: close


查看dump的data很多Authorization的信息 整理下

4.png


测试了下接口

5.png


可以成功登录别人的帐号 (auth认证是持久的,可直接同步他人的数据)
当然也可以刷粉丝之类。
POST /api/friends.json
friend_id=xxxx
看到一个奇怪的请求
http://cyjs.qiniudn.com/pois/58-78.zip(qiniudn是chanyouji的图片存储主机)

6.png


进行了加密
再研究下
静态分析ipa
手机未越狱,所以采用静态分析,
下载了chanyouji3.41版本
这里先要破除DRM,dump出内存,重打包了ipa.
拖入ida6.4中,有很多sub_ 未识别的函数,Quake Wang OC写的不标准啊

7.png


查找pois的函数,顺着找,找到zip 解密部分,看到密码 (怎么是hacker编码。。。)

8.png


解压压缩文件

9.png



旅游地点景点酒店坐标 ,我看了纯银的微博,地图偏移有关?(用我0.01精度的火星地图查了几个,貌似有的也没有纠偏)
看下数据存储
用itools直接导出数据库sqlite 未加密
用sqlite browser 打开

10.png


是同步错了么?
Android
下载了APK 反编译了一下,也看了下那个密码的部分 判断下APK 和ipa是否用的相同?
Android下用的zip解密 肯定用到ZipFile类,搜索下

fileoutputstream.write(binaryData);
fileoutputstream.flush();
fileoutputstream.close();
ZipFile zipfile = new ZipFile(file);
if(zipfile.isEncrypted())
zipfile.setPassword("chany0uj1");
zipinputstream = zipfile.getInputStream(zipfile.getFileHeader("poi.csv"));


密码相同。
数据库存储
同样未加密的sqlite存储
检测下Manifest.xml
exported="true"有几项 可被DOS
例:

<receiver android:exported="true" android:name="com.umeng.message.NotificationProxyBroadcastReceiver"/>


友盟分析数据也不是很重要
广播receiver 可被外部应用调用 可以限制下访问权限(可做可不做)
其他没什么了

漏洞证明:

QQ图片20140604180220.png


莱小妞的。。。。。

修复方案:

1.给个婵小队的签名吧(^^)
2.纯银赶紧换头像

版权声明:转载请注明来源 摄影会长@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2014-06-05 08:41

厂商回复:

api调用https heartbleed漏洞已经修复,用户token持久时间过长的问题,我们会在后续app版本里面改成较短时间周期,截图中给出的莱小妞同学账号token已经失效。
数据库加密密码泄露问题已忽略,因为客户端有保留解密以后的数据库,可以直接dump出来,该数据不是敏感信息,是用来保存景点坐标的离线包,加密码是为了托管在CDN上的zip文件防爬虫考虑。
CEO头像已换,蝉小队签名请提供一个邮寄方式,或者直接发送邮件到,我们会尽快快递过去,十分感谢。

最新状态:

暂无