본문 바로가기
Web hacking/Nomaltic) 웹 해킹 수업 노트 👩‍💻

[12주차] JWT 개념

by m_.9m 2022. 2. 3.

 

**JWT

(2) 개념 : JSON을 이용한 Web 토큰.

>JSON(JavaScript Objrct Notation)

>"키-값 쌍"의 데이터 형식

Ex)

{"id":"nomaltic", "email":"nomaltic@test.com"}

-> 크게 두가지 유형이 있다. (JWS,JWE)

주로 JWS를 사용하고 있고 이게 JWT라고도 불린다.

(2) 구조 : Header + Payload + Signiture 

-Header

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

-Payload

{"id":"nomaltic", "email":"nomaltic@test.com"}

-Signiture

무결성을 검증하기 위한 서명 값

 

-Bypass 전략

(1) None Alg

https://www.root-me.org/en/Challenges/Web-Server/JSON-Web-Token-JWT-Introduction

(2) 대칭 키 사용시 Key 추출

(3) HMAC Alg

(4) Invalid Signiture

-> 시그니처를 검증하고 있지 않을 때

(5) Secrer Key Crack

Challenges/Web - Server : JSON Web Token (JWT) - Weak secret [Root Me : Hacking and Information Security learning platform] (root-me.org)

 

Challenges/Web - Server : JSON Web Token (JWT) - Weak secret [Root Me : Hacking and Information Security learning platform]

pourquoi le serveur de root-me devient inaccessible après avoir utiliser dirsearch?

www.root-me.org

 

 

(6) Leak Secret Key

(7) KID변조

-디렉토리 트레버져

"kid":"../../pblic/css/main.css"

//use the publiciy available file main.css to verify the token

-SQL Injection

"kid":"aaaaaaa' UNION SELECT 'key';--"

//use the string "key" to verify the token

(8) JKU (JWK Set URL)

Key를 요청하는 헤더

(9) JWK

이 헤더가 허용되면 공격자는 자신의 Key를 넣어서 우회할 수 있다.

 

**Session 관련 취약점

-세션 재사용

-세션 타임아웃