Hello there, ('ω')ノ
WebGOATでJWT tokens⑤を選択して。
SHA-2機能を備えたHMACでは、秘密鍵を使用してトークンに署名しての検証で。
キーがわかったら、新しいトークンを作成して署名できるので。
キーが強力なので、ブルートフォースや辞書攻撃を実行できないことが重要で。
トークンから秘密鍵を見つけて、userIdをWebGoatに変更した鍵を送信とのことで。
まずは、表示されているトークンを下記サイトで解析して。
デコード結果は以下のとおりで。
ユーザはTomで、ManagerとProject Administratorの権限を持っているようで。
ここでは、usernameをTomからWebGoatに変更すればよいのかと。
ヘッダ:
{"alg":"HS256","typ":"JWT"}
ペイロード:
{"iss":"WebGoat Token Builder",
"iat":1524210904,
"exp":1618905304,
"aud":"webgoat.org",
"sub":"tom@webgoat.com",
"username":"Tom",
"Email":"tom@webgoat.com",
"Role":["Manager","Project Administrator"]}
問題は、秘密キーを取得する方法で。
ブルートフォースをしかけるのに、まずはjwtをコピーしてファイルを作成して。
jwt.txt
辞書ファイルを下記から作成して。
google-10000-english.txt
hashcatを実行すると。
ネイティブIntel OpenCLランタイムではないとのこと。
大幅な速度低下が予想されるので。
--forceを使用してオーバーライドできるが、関連するエラーは報告しないと。
よって、下記からソフトをダウンロードすることに。
https://software.intel.com/content/www/us/en/develop/articles/opencl-drivers.html#cpu-section
ダウンロードしたら解凍して。
tar -zxvf l_opencl_p_18.1.0.015.tgz
解凍先ディレクトリへ移動してからインストールして。
./install_GUI.sh
再度、hashcatを実行して。
hashcat -m 16500 jwt.txt -a 3 -w 3 google-10000-english.txt
下記の結果が得られて。
victory
victoryを入力して、新しくトークンを作成して。
下記のトークンを入力してクリアできた。
eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJXZWJHb2F0IFRva2VuIEJ1aWxkZXIiLCJpYXQiOjE1MjQyMTA5MDQsImV4cCI6MTYxODkwNTMwNCwiYXVkIjoid2ViZ29hdC5vcmciLCJzdWIiOiJ0b21Ad2ViZ29hdC5jb20iLCJ1c2VybmFtZSI6IldlYkdvYXQiLCJFbWFpbCI6InRvbUB3ZWJnb2F0LmNvbSIsIlJvbGUiOlsiTWFuYWdlciIsIlByb2plY3QgQWRtaW5pc3RyYXRvciJdfQ.kdTks_c6XAos7EbbDlToGl8VZsYMk7xEkT2pvK_Zn2E
Best regards, (^^ゞ