BurpSuiteのExtension「JWT Editor」でJWTの中身を調査・改変する
JWT Editorの概要
JWT Editorとは、Json Web Token(JWT)を検証するためのBurpSuiteのExtenstionです。
JWTのPayload部(データ部)の内容を改変したり、新しい署名鍵を生成してJWTを署名し直したりすることができます。
インストールはBurpSuiteを起動し、「Extensions」タブの「BApp Store」からインストールできます。
JWT Editorの使い方
署名用の鍵を生成する
「JWT Editor Keys」タブを開きます。
RSA用の鍵を作るには「New RSA Key」をクリックします。
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/shukapin-note/d7e4c8ce-e907-4454-925b-9999be7ec38d/232922ac29b2fa7d9b74550b75caa8ab.png)
「Generate」をクリックすることで鍵が生成されます。
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/shukapin-note/bed7e222-4ca4-44f5-802f-2996b8884908/b87bb14d03e626358119bc4c69b60ede.png)
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/shukapin-note/f1eaf19d-c1be-4877-acd9-c4e9cb495f01/8428f52d95f93302568d9be75077f3fb.png)
JWTの中身を編集する(生成した鍵で署名する)
攻撃対象のリクエストをRepeaterへ送信します。
今回はユーザ「wiener」でログインし、My Accoutページへアクセスした際の通信が攻撃対象です。
このリクエストに含まれるJWTを改変し、ユーザ「administrator」でアクセスできるかを確認していきます。
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/shukapin-note/5a8cc465-2cf6-4a4f-8ed4-d0ff3e04947f/34dc209b254150b24008f42fa5e47c9a.png)
Extensionをインストール後にJWTを含むリクエストをRepeaterで開くと、「JSON Web Token」タブが現れます。
「JSON Web Token」タブで、「sub」クレームを「wiener」から「administrator」に改変し、「Attack」をクリックします。
前の手順で作成した署名鍵を利用するには「Embedded JWK」をクリックします。
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/shukapin-note/32dd8640-50db-427c-8427-cec95da7b7f1/6f36fbc3832560b762ccb383dff89b4a.png)
「Embedded JWK」をクリック後はHeader部が変わり、「jwk」クレームに署名用鍵の情報が埋め込まれました。
リクエストを送信すると、改変したJWTが正常に使え、レスポンスにユーザ「administrator」のMy Accout画面が表示されました。
![](https://s3.ap-northeast-1.amazonaws.com/wraptas-prod/shukapin-note/c6964e7b-bc45-4d93-8c8a-562af313d219/49367132f3df7fcc216418306d9aadac.png)