Shikata Ga Nai

Private? There is no such things.

Juice ShopのUnsigned JWTをやってみた

Hello there, ('ω')ノ

 

存在しないjwtn3d@juice-sh.opになりすまして。

署名されていないJWTトークンを偽造しなさいと。

 

f:id:ThisIsOne:20210712123309p:plain

 

既存ユーザにログインして。

 

f:id:ThisIsOne:20210712123407p:plain

 

リクエストをリピータへ。

 

f:id:ThisIsOne:20210712142350p:plain


JWTは、3ブロックで構成されていて。

 https://jwt.io/

 

今回は、HEADER.PAYLOAD.で構成して置き換えることに。

 

f:id:ThisIsOne:20210712142512p:plain

 

まずは、HEADER部をデコードして確認して。

 eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9

 ⇩

 {"typ":"JWT","alg":"RS256"}

 

f:id:ThisIsOne:20210712142702p:plain

 

PAYLOAD部をデコードして。

メールアドレスを変更したものをエンコードして。

最後の=を削除して。

 

f:id:ThisIsOne:20210712142914p:plain

 

JWTを置き換えて、Sendするとうまくいかず。

 HEADER部.PAYLOAD部.(なし)

 

f:id:ThisIsOne:20210712144019p:plain

 

HEADER部のalgを変更してエンコードして。

=を削除したものを。

 {"typ":"JWT","alg":"none"}

 ⇩

 eyJ0eXAiOiJKV1QiLCJhbGciOiJub25lIn0=

 

f:id:ThisIsOne:20210712142114p:plain

 

JWTと置き換えてSendすると。
これもうまくいかず。

下記のヘッダを削除して、Sendすると。

 X-User-Email: user@mail.com

 

f:id:ThisIsOne:20210712163350p:plain

 

ようやく、うまくいって。

ちなみにCookieの値はトークンと同じですが変更する必要はなくて。

 

f:id:ThisIsOne:20210712163312p:plain

 

クリアできた。

 

f:id:ThisIsOne:20210712141634p:plain

 

Best regards, (^^ゞ