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」をクリックします。
「Generate」をクリックすることで鍵が生成されます。
JWTの中身を編集する(生成した鍵で署名する)
攻撃対象のリクエストをRepeaterへ送信します。
今回はユーザ「wiener」でログインし、My Accoutページへアクセスした際の通信が攻撃対象です。
このリクエストに含まれるJWTを改変し、ユーザ「administrator」でアクセスできるかを確認していきます。
Extensionをインストール後にJWTを含むリクエストをRepeaterで開くと、「JSON Web Token」タブが現れます。
「JSON Web Token」タブで、「sub」クレームを「wiener」から「administrator」に改変し、「Attack」をクリックします。
前の手順で作成した署名鍵を利用するには「Embedded JWK」をクリックします。
「Embedded JWK」をクリック後はHeader部が変わり、「jwk」クレームに署名用鍵の情報が埋め込まれました。
リクエストを送信すると、改変したJWTが正常に使え、レスポンスにユーザ「administrator」のMy Accout画面が表示されました。