틀린 부분이 있다면 언제든지 댓글 남겨주세요!
JWT (JSON Web Token) 이란
[개념]
- 웹표준(RFC 7519)을 따르며, JSON 객체(key-value가 한 쌍을 이룸)를 통해 정보를 전달함.
- 인증을 위해 필요한 모든 정보를 한 객체에 담에서 전달.
- 주로 로그인 과정에서 인증할 때 사용됨.
[구조] - . (dot)을 구분자로 함
헤더(header).내용(payload).서명(signature)
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
- Header : Algorithm / Token type
해시 알고리즘 / 토큰 타입 정의
{
"alg": "HS256",
"typ": "JWT"
}
- Payload : Data
전달하는 데이터
{
"sub": "1234567890",
"name": "John Doe",
"iat": 1516239022
}
- Verify signature
인코딩된 header + 인코딩된 payload + secret값
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
your-256-bit-secret
)
[JWT 생성 사이트]
JWT signature 미검증 취약점
: payload 부분의 데이터를 바꾼 후 인코딩한 값을 기존 토큰 대신 입력했을 때, signature 값을 검증하지 않는 경우 변조가 가능한 취약점 발생
웹페이지에서 JWT 값은 아래에서 확인 가능
> 개발자도구 - Application - Storage - Access_token
더 많은 취약점은 이 블로그 참고: JWT (JSON Web Token) 취약점 알아보기 (velog.io)
'Security > WEB' 카테고리의 다른 글
[Dreamhack] SQL Injection bypass WAF Advanced (1) | 2022.09.24 |
---|---|
SMTP PORT (0) | 2022.07.01 |
아파치 톰캣 (Apache and Tomcat) (0) | 2022.07.01 |
WebGoat 실습 ② 자동화 스크립트 (0) | 2020.08.31 |
WebGoat 실습 ① 설치 및 injection 문제 풀이 (0) | 2020.08.27 |
댓글