jwt 安全

參考:

https://github.com/ticarpi/jwt_tool/wiki/Attack-Methodology

https://jwt.io/introduction

https://zhuanlan.zhihu.com/p/93129166

https://book.hacktricks.xyz/pentesting-web/hacking-jwt-json-web-tokens

簡介

jwt ,全稱 json web token ,以 json 對象的形式安全的傳遞數據。因爲這些信息被數字簽名,所以保證了其完整性。

使用場景:授權(通常在認證成功後返回,跟 sessionid 類似)、信息交換。

結構:Header.payload.signature

image-20210802191936641

安全測試

用到的工具:

  1. 在線解碼、編碼:https://tooltt.com/jwt-decode/ https://tooltt.com/jwt-encode/
  2. 本地工具:https://github.com/ticarpi/jwt_tool
可能存在的問題
  1. 服務端可能不檢查簽名。嘗試直接更改 payload 部分,若響應和未更改之前相同,則服務端未檢查。
  2. 若採用對稱加密算法,則可以嘗試暴力破解獲取 secret。
  3. jwt token 的來源,如果第一次出現的地方是在客戶端的請求,說明 secret key 在客戶端代碼裏。
  4. CVE-2015-9235 。將 header 中的 alg 更改爲 none ,jwt 庫就不會檢驗簽名。jwt_tool.py -X a
  5. CVE-2016-5431。若採用非對稱加密(RAS 等),嘗試將其修改爲對稱加密算法(HS256、HS512 等)。並將服務端的公鑰作爲 secret 。jwt_tool.py -X k
  6. CVE-2018-0114。僞造密鑰。如果 header 中存在 jwk ,則可以嘗試利用。
  7. CVE-2020-28042。將簽名刪除,檢測能否成功。jwt_tool.py -X n
  8. 如果header 中有 jku、kid、x5u、x5c、JTI ,可以參考進行利用。https://book.hacktricks.xyz/pentesting-web/hacking-jwt-json-web-tokens
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章