JWT kid 헤더 경로 조작:
JWT의 kid (Key ID) 필드는 여러 키 중 어떤 키로 서명했는지 나타냅니다.
하지만 kid 값이 검증되지 않거나, 파일 시스템 경로로 직접 사용되면,
공격자가 경로를 조작하여 다른 키를 사용하거나 예상치 못한 파일을 로드할 수 있습니다.
| Kid | 목적 | 상태 |
|---|---|---|
| key1 | 일반 사용자 토큰 검증 | 정상 |
| key2 | 관리자 토큰 검증 | ⚠️ 취약: kid로 접근 가능 |
kid: "key1"으로 서명된 사용자 토큰kid: "key2"로 변경하고 key2로 HMAC 서명실제 파일 시스템 공격:
만약 kid가 파일 경로로 사용되면:
kid: "../../../etc/passwd" → /etc/passwd 읽기kid: "./../../admin.key" → 경로 조작kid: ""; cat /etc/shadow; #" → 명령어 인젝션