官术网_书友最值得收藏!

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章中對此進行詳細討論。

主站蜘蛛池模板: 亚东县| 锡林郭勒盟| 乐昌市| 拉萨市| 来安县| 肇庆市| 家居| 沁水县| 敦化市| 泉州市| 嘉定区| 嘉荫县| 河间市| 筠连县| 连州市| 英山县| 叙永县| 巴林右旗| 墨江| 定日县| 郑州市| 根河市| 泾川县| 耒阳市| 江都市| 乌恰县| 白沙| 佛冈县| 峨边| 高淳县| 古蔺县| 南投市| 会昌县| 山阳县| 丹阳市| 平江县| 清涧县| 大城县| 莲花县| 永丰县| 六安市|