Shikata Ga Nai

Private? There is no such things.

WebGOATでJWT tokens⑤を演習してみた

Hello there, ('ω')ノ

 

WebGOATでJWT tokens⑤を選択して。

 

SHA-2機能を備えたHMACでは、秘密鍵を使用してトークンに署名しての検証で。

キーがわかったら、新しいトークンを作成して署名できるので。

キーが強力なので、ブルートフォースや辞書攻撃を実行できないことが重要で。

 

トークンから秘密鍵を見つけて、userIdをWebGoatに変更した鍵を送信とのことで。

まずは、表示されているトークンを下記サイトで解析して。

 

 https://jwt.io/#debugger

 

デコード結果は以下のとおりで。

ユーザは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"]}

 

f:id:ThisIsOne:20200717095353p:plain

 

問題は、秘密キーを取得する方法で。

ブルートフォースをしかけるのに、まずはjwtをコピーしてファイルを作成して。

 

 jwt.txt

 

f:id:ThisIsOne:20200717143515p:plain

 

辞書ファイルを下記から作成して。

https://resources.oreilly.com/live-training/enhanced-machine-learning-for-cybersecurity/blob/master/Data/google-10000-english.txt

 

 google-10000-english.txt

 

f:id:ThisIsOne:20200717142501p:plain

 

hashcatを実行すると。

ネイティブIntel OpenCLランタイムではないとのこと。

大幅な速度低下が予想されるので。

--forceを使用してオーバーライドできるが、関連するエラーは報告しないと。

 

f:id:ThisIsOne:20200717143056p:plain

 

よって、下記からソフトをダウンロードすることに。

https://software.intel.com/content/www/us/en/develop/articles/opencl-drivers.html#cpu-section

 

f:id:ThisIsOne:20200717143321p:plain

 

ダウンロードしたら解凍して。

 tar -zxvf l_opencl_p_18.1.0.015.tgz

 

f:id:ThisIsOne:20200717142904p:plain

 

解凍先ディレクトリへ移動してからインストールして。

 ./install_GUI.sh

 

f:id:ThisIsOne:20200717142721p:plain

 

再度、hashcatを実行して。

 hashcat -m 16500 jwt.txt -a 3 -w 3 google-10000-english.txt

 

f:id:ThisIsOne:20200717142241p:plain

 

下記の結果が得られて。

 victory

 

f:id:ThisIsOne:20200717142351p:plain

 

victoryを入力して、新しくトークンを作成して。

 

f:id:ThisIsOne:20200717122902p:plain

 

下記のトークンを入力してクリアできた。

eyJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJXZWJHb2F0IFRva2VuIEJ1aWxkZXIiLCJpYXQiOjE1MjQyMTA5MDQsImV4cCI6MTYxODkwNTMwNCwiYXVkIjoid2ViZ29hdC5vcmciLCJzdWIiOiJ0b21Ad2ViZ29hdC5jb20iLCJ1c2VybmFtZSI6IldlYkdvYXQiLCJFbWFpbCI6InRvbUB3ZWJnb2F0LmNvbSIsIlJvbGUiOlsiTWFuYWdlciIsIlByb2plY3QgQWRtaW5pc3RyYXRvciJdfQ.kdTks_c6XAos7EbbDlToGl8VZsYMk7xEkT2pvK_Zn2E

 

f:id:ThisIsOne:20200717122700p:plain

 

Best regards, (^^ゞ