PayPal 的 bug 允許通過逐一列舉的方式獲取付款方式的最後四位數字以及披露任何給定 PayPal 賬户的賬户餘額和近期交易資料。

介紹
這篇文章詳細介紹了一個問題,它允許列舉付款方式的最後四位數字(例如信用卡或借記卡),並且披露任何給定 PayPal 賬户的賬户餘額和近期交易。
這次攻擊被提交給 PayPal 的  bug 獎勵計劃 ,在該程式中它被歸類為超出範圍,這是無可否認的,因為他們的程式範圍沒有提到對他們的互動式語音響應系統的任何攻擊。

先決條件和偵察
為了開始攻擊,攻擊者需要知道與帳户有關的兩條資訊,這些資訊將是與其連結的電子郵件地址和電話號碼。
知道與帳户關聯的電子郵件地址和電話號碼後,攻擊者將訪問 PayPal 網站上的 “  忘記密碼” 頁面,並輸入與目標帳户關聯的電子郵件地址。
然後,攻擊者將收到連結到該帳户的卡片型別,以及該卡的最後兩位數。

攻擊互動式語音應答系統
乍一看,PayPal 基於客服電話的互動式語音響應系統,似乎最多允許嘗試提交三次每個電話的最後四位數字。
但是,如果第一次提交嘗試不正確,則在同一通話期間的後續嘗試中,將不會通知主叫方成功提交。這使得在相同的電話呼叫中給予呼叫者的任何額外嘗試都是掩飾。
為了避開這個假定的限制,攻擊者只需要一次嘗試提交每個電話最後四位數的可能組合。

此外,限制每次通話一次提交的次數,使得列舉正確組合的任務更加高效,更不用説,它可以很容易地區分正確的嘗試和錯誤的嘗試。
同時,我已經用我自己的帳號測試了這個理論,我已經能夠得出結論,提交嘗試的數量是沒有限制的,這意味著,假設攻擊者可以呼叫 10 萬次,以完全自己的方式列舉出最後的四位數字。
然而,這忽略從忘記密碼頁中檢索到的最後兩個數字,這樣的條件有效地使攻擊變得更加可行——通過將可能的組合數量從 10 萬減少到僅 100 。
unsuccessful-attempt 音訊記錄,試聽地址:https://soundcloud.com/sainikaran/unsuccessful-attempt(可能需要梯子)
一旦找到了最後四位數字的正確組合,攻擊者只需使用互動式語音應答系統來檢索關於該帳户的資訊。
在輸入正確的最後四位數字後,該帳户的當前餘額將自動被機器讀取。
account_balance_disclosure 音訊記錄,試聽地址:https://soundcloud.com/sainikaran/account-balance-disclosure(可能需要梯子)
此外,為了檢索關於最近事務的資訊,攻擊者只需要説 “最近的交易”,然後就可以讀出相同的資訊。
recent-transactions-disclosure 音訊記錄,試聽地址:https://soundcloud.com/sainikaran/recent-transactions-disclosure(可能需要梯子)
攻擊效果和效率
如果前面提到的先決條件已經得到滿足,攻擊者將毫無疑問地能夠列舉與帳户關聯的付款方式的正確最後四位數字。這些資訊可以進一步用於檢索帳户的當前餘額和最近的交易。
此外,在對最後四位數字的提交時間進行了多次嘗試後,發現提交的嘗試平均需要 30 秒左右,最快的可能是每通電話 27 秒。
如果我們把儘可能快的時間作為我們的平均數,列舉從 00XX 到 99 XX 的所有可能的組合,最多需要 45 分鐘。通過在混音中新增另一部電話來連續撥打電話,這段時間可以減半。
可能的修復
使用者應該被允許選擇隱私設定,這樣可以將在忘記密碼頁面上顯示的資料量保持在最小值。這類似於 Twitter 允許使用者在試圖重置密碼時,隱藏與他們賬户關聯的電子郵件地址和/或電話號碼的資訊。這也類似於 Facebook 允許使用者在密碼重置頁面輸入他們的電子郵件地址時,選擇他們的全名是否出現。
也許可以部署一些措施,在此情況下,如果需要顯示的是信用卡或借記卡的最後兩個數字,那麼只有當請求與某個特定的條件匹配時才會顯示出來,比如當請求是由可識別的裝置或位置發出的。
結論
這個問題允許對帳户上的付款方法的最後四位數字進行列舉,這樣就可以公開帳户的當前餘額和最近的交易。
如果攻擊者知道目標帳户的電子郵件地址和電話號碼,首先會使用 PayPal 的忘記密碼頁面來檢索與該帳户關聯的支付方法的最後兩位數。
然後,攻擊者就可以通過撥打 PayPal 的電話客户支援和與互動語音應答系統的互動,準確地列舉出最後四個數字——或者説是最後四位數字的前兩個數字。
一旦攻擊者成功地列出了與該賬户相關聯的信用卡/借記卡或銀行賬户的最後四位數字,他們就可以隨意查詢經常賬户餘額和最近的交易資訊。
最後,我想指出的是,由於在攻擊中不需要或涉及到人工互動,所以它本質上是一個進入 PayPal 賬户的後門——允許攻擊者在任何時候查詢任何給定賬户的經常賬户餘額和最近的交易資訊。