간혹 secret이 간단하게 설정된 경우에는 secret을 찾고 변조된 JWT를 만들 수 있는데, 이를 인증에 사용하거나 중요 로직에서 데이터를 읽어 사용하는 경우 큰 보안적인 리스크를 가지게됩니다.
보통은 Key Confusion이나 Signature Exclusion, 중요정보 포함, 시그니쳐 검증 체크를 중점적으로 보는데요, 뒤적뒤적하다가 cracking 툴 괜찮은걸 찾아서 포스팅합니다.
그냥 돌려놓으면 되서 점검 포인트 하나 늘리는거 치곤 리소스 안들어서 좋습니다.
How to Install ?
node 패키지로 npm으로 설치 가능합니다.$ npm install --global jwt-cracker
How to use?
jwt-cracker version 1.0.5
Usage:
jwt-cracker <token> [<alphabet>] [<maxLength>]
token the full HS256 jwt token to crack
alphabet the alphabet to use for the brute force (default: abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789)
maxLength the max length of the string generated during the brute force (default: 12)
옵션이랄껀 없고, token만 넣어줘도 됩니다. 기본값은 알파벳 대소문자+숫자 조합으로 12글자까지 테스트를 진행하게 되고, 임의로 설정해서 조정해줄 수 있습니다.
e.g
$ jwt-cracker eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZWNyZXQiOiIxMjM0IiwibmFtZSI6IkhBSFdVTCIsImlhdCI6MX0.1S20CQMgCwEaRjycItJgkDIvGtHjQQR_baynfi8cHQI
Test Case
![]() |
test data , secret is "hwul" |
$ jwt-cracker eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzZWNyZXQiOiIxMjM0IiwibmFtZSI6IkhBSFdVTCIsImlhdCI6MX0.1S20CQMgCwEaRjycItJgkDIvGtHjQQR_baynfi8cHQI abcdefghijklmnopqrstuvwxyz 4
Attempts: 100000
Attempts: 200000
SECRET FOUND: hwul
Time taken (sec): 2.111
Attempts: 225714
![]() |
https://i.giphy.com/m6aZERsqxPiBa.gif |
![]() |
HAHWULSecurity engineer, Gopher and H4cker! |
0 개의 댓글:
Post a Comment