Python で JWT (JSON Web Token) を扱う
CTF で JWT を扱うことがあったので, Python の JWT ライブラリについて調べたことの覚え書き.
デコードや JWT none Attack ならば https://token.dev/ で十分だが, 秘密鍵のリークなどの場合などに Python が便利そう.
PyJWT のインストール
- JWT を Python で扱うライブラリとして PyJWT を使用 (公式ドキュメント)
- pip でインストール可能
pip install pyjwt
秘密鍵を取得した際の JWT の生成
- CTF などで秘密鍵のリークができた際に, データを以下の例で表す形でエンコード可能
import jwt example_payload = {"user": "admin"} secret_key = $SECRET_KEY token = jwt.encode(example_payload, secret_key)
$SECRET_KEY
にはリークした秘密鍵が入る- アルゴリズムを指定しなければデフォルトで HS256 (SHA-256 を用いる方法) が採用される