我正在測驗一個使用 OAuth 機制來授權和訪問 API 的 Web 應用程式。OAuth 使用 RS256 演算法對令牌進行簽名。我注意到,當我傳遞帶有 null 'Header' 值且沒有 JWT 令牌中的“驗證簽名”部分的 JWT 令牌時,我仍然能夠訪問 API。
示例:原始 JWT 令牌 -<header>.<payload>.<signature>
修改后的 JWT 令牌 -.<payload>
根據標準安全最佳實踐,標頭不應接受“無”演算法,推薦演算法應為 HS256 或 RS256。但在上述情況下,API 已通過空標頭值成功授權。我什至嘗試在標題中使用“無”演算法,但仍然接受 API。
由于演算法未在 API 中驗證,這是一個安全問題嗎?我可以知道攻擊者如何使用這種情況來利用 API。
uj5u.com熱心網友回復:
如果您正在更改標頭部分或簽名部分(例如不發送它們),并且 API 仍然接受令牌,那么這意味著 API 根本不驗證簽名。這意味著您可以將任何內容放入有效負載中,以 base64 編碼,API 將接受它作為有效令牌。
這不是一個“安全問題”,它只是一個明顯錯誤的實作。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/368057.html
