연구실:Web

[JWT Hacking Challenge] 2. 취약점 분석 실습

작성자 정보

  • j4zzmaster 작성
  • 작성일

컨텐츠 정보

본문

※ 목차

1. [JWT Hacking Challenge] 1. 환경 구축 실습

2. [JWT Hacking Challenge] 2. 취약점 분석 실습

 

 

0. 사전 준비 ⛵️

Postman 준비

환경 구축 실습 편에서 준비한 JWT-attacks.postman_collection.json 파일을 Import 한다.

e6c275ab03eeb22d971b72523d75a3e243df3760ie6r.png

 

1. None 알고리즘 사용 취약점

The alg=none signature-bypass vulnerability (CVE-2015-2951)

 

1.1. 취약점 테스트 ⚔️

Postman 항목에 none-obtain-token을 선택하고 Send를 날려준다.

b29ea75d940f401852b34ad255afcb147cfa13b4ae9b.png

 

JWT가 반환되는데 None 알고리즘은 Singature를 검증하지 않기 때문에 변조가 가능하다.

JWT는 Base64로 Encoding 되어 있는 [HEADER], [PAYLOAD]를 변조하여 테스트할 것이다.

 

HEADER:
{
 "alg": "HS256", ----- None으로 변경
 "typ": "JWT"
}

PAYLOAD:

{
 "account": "Bob",
 "role": "User", ----- Admin으로 변경
 "iat": 1710832512,
 "aud": "https://127.0.0.1/jwt/none"
}

 

 

Postman의 none-send-token을 열고 변조한 값 + Signature(빈칸)을 전달한다.

role이 Admin으로 변조된 채로 JWT가 정상 처리된 것을 볼 수 있다.

 

d366166cd576fb83f276ff21e15efa52ac9f19dcx87l.png

 

1.2. 대응 방안 ⛏️

JWT의 None 알고리즘을 사용하지 않는다. (코드 단 제거)

dea6a16ad52022553b24fb20fce6b70f3ec93655dgkv.png

 

1.3 조치 결과 ⭐️

invalid algorithm 에러 출력

21970771537b5cf8dd5bd119fb50b27672793c77k0m7.png

 

 

2. None 알고리즘 사용 취약점

2.1. 취약점 테스트 ⚔️

Postman 항목에 none-obtain-token을 선택하고 Send를 날려준다.

 

2.2. 대응 방안 ⛏️

 

2.3 조치 결과 ⭐️

 

 

 

Ref:

https://velog.io/@thelm3716/jwt-test-env

https://velog.io/@thelm3716/JWTvul

관련자료

댓글 0
등록된 댓글이 없습니다.