피드로 돌아가기
My Favorite OS - Jerseyctf6
Dev.toDev.to
Security

HS256 대칭키 취약점을 이용한 JWT Role 변조 및 권한 상승

My Favorite OS - Jerseyctf6

David Disu2026년 4월 19일1beginner

Context

사용자 역할 기반의 접근 제어를 위해 JWT를 도입한 시스템 구조. HS256 알고리즘 기반의 대칭키 암호화 방식 사용으로 인한 Secret Key 유출 가능성 내포.

Technical Solution

  • JWT Payload 내 role 필드를 통한 권한 검증 로직 확인
  • HS256 알고리즘의 특성인 동일 Secret Key 기반의 서명 및 검증 구조 분석
  • Hashcat 도구를 활용한 Dictionary Attack으로 서버 측 Secret Key(windows98) 추출
  • 추출한 Secret Key를 활용해 role을 user에서 Admin으로 변경한 위조 토큰 생성
  • 위조된 Authorization Bearer 토큰을 통한 /admin/panel 엔드포인트 접근 권한 획득

1. HS256 대신 비대칭 암호화 방식인 RS256 도입 검토

2. 추측 불가능한 고엔트로피 Secret Key 설정 및 주기적 교체 적용

3. JWT Payload의 클라이언트 측 가독성을 고려한 민감 정보 포함 배제

4. 서버 사이드에서의 추가적인 세션 검증 또는 Token Blacklist 운영

원문 읽기