- Web漏洞搜索
- (美)彼得·亞沃斯基
- 590字
- 2021-11-05 10:20:01
3.4 Twitter取消訂閱通知
難度:低
URL:https://www.twitter.com/
報告位置:https://blog.mert.ninja/twitter-hpp-vulnerability/
報告日期:2015年8月23日
支付獎金:700美元
在某些情況下,發現HPP漏洞需要耐心。2015年8月,Mert Tasci在取消訂閱接收Twitter通知時注意到了一個有趣的URL(在這里我已將其縮短):

注意參數UID。該UID恰好是當前登錄的Twitter賬戶的用戶ID。在注意到這一點之后,Tasci做了大多數黑客會做的事情——他試圖將UID更改為另一個用戶的UID,但是這個操作沒有任何反饋。Twitter只是返回了一個錯誤。
在別人可能選擇放棄時,Tasci決定繼續執行,他嘗試添加第二個UID參數,URL看起來如下所示(同樣是縮短的版本):

他成功了!他設法取消了其他用戶的電子郵件通知訂閱。Twitter容易受到HPP退訂用戶攻擊。正如FileDescriptor向我解釋的那樣,此漏洞值得注意的原因與SIG參數有關。事實證明,Twitter使用UID值生成SIG值。當用戶單擊取消訂閱的URL時,Twitter將通過檢查SIG和UID值來驗證URL是否未被篡改。因此,在Tasci的初始測試中,通過更改UID的值使另一個用戶取消訂閱失敗了,這是因為簽名與Twitter預期的不一致。但是,通過添加第二個UID,Tasci成功地讓Twitter使用第一個UID參數驗證簽名,使用第二個UID參數執行退訂操作。
要點
Tasci證明了堅持和知識的重要性。如果他在將UID更改為另一個用戶并失敗后放棄了該漏洞,或者他不知道HPP型漏洞,那么他就不會獲得700美元的獎金。
另外,還要注意HTTP請求中包含的具有自動遞增的整數(例如UID)的參數:許多漏洞涉及操縱此類參數值,以使Web應用程序出現非預期的錯誤。我將在第16章中對此進行詳細討論。