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

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

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

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

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

Категории

Все категории
Loading categories
pyt — Инструмент статического анализа для обнаружения уязвимостей безопасности в веб-приложениях на Python | Kitploit
Инструменты/GitHubGitHub/python-security/pyt
Статический анализСтатический анализ кода (SAST)Анализ уязвимостейАнализ КодаВеб-безопасность
GitHubpython-security/pyt

pyt

Инструмент статического анализа для обнаружения уязвимостей безопасности в веб-приложениях на Python

Репозиторий
2.2k2465 лет назадПроверено Kitploit

Популярное

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

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

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

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

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

.. image:: https://travis-ci.org/python-security/pyt.svg?branch=master :target: https://travis-ci.org/python-security/pyt

.. image:: https://readthedocs.org/projects/pyt/badge/?version=latest :target: http://pyt.readthedocs.io/en/latest/?badge=latest

.. image:: https://codeclimate.com/github/python-security/pyt/badges/coverage.svg :target: https://codeclimate.com/github/python-security/pyt/coverage

.. image:: https://badge.fury.io/py/python-taint.svg :target: https://badge.fury.io/py/python-taint

.. image:: https://img.shields.io/badge/PRs-welcome-ff69b4.svg :target: https://github.com/python-security/pyt/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22+

.. image:: https://img.shields.io/badge/python-v3.6-blue.svg :target: https://pypi.org/project/python-taint/

.. image:: https://img.shields.io/badge/Donate-Charity-orange.svg :target: https://www.againstmalaria.com/donation.aspx

Этот проект больше не поддерживается

Обновление от марта 2020 года: Пожалуйста, ознакомьтесь с замечательным Pysa tutorial_, который поможет вам быстро найти уязвимости безопасности в вашей кодовой базе Python.

Pyre_ от Facebook — это потрясающий проект с блестящим будущим, над которым работает много умных людей. Я бы посоветовал, если вы не очень знакомы с анализом программ, сначала разобраться, как работает PyT, прежде чем углубляться в Pyre. Наряду с README в большинстве директорий_ существуют оригинальная магистерская диссертация_ и несколько слайдов_. Тем не менее, я готов рассматривать pull request'ы и давать вам права на запись, если вы сделаете больше нескольких.

У этого проекта было много замечательных участников, в будущем я планирую заниматься другими проектами, такими как detect-secrets_ и другими (например, со временем Pyre), если вы захотите продолжить сотрудничество :)

Если вы инженер по безопасности, у которого есть, например, кодовая база Python без аннотаций типов, с которой Pyre не справится, я рекомендую заменить ваши "стоки" (sinks) на безопасную обёртку (например, defusedxml) и сигнализировать о любом использовании стандартного стока. Для этого можно использовать Bandit, так как анализ потоков данных не требуется, но из-за высокого процента ложных срабатываний его придётся сильно обрезать.

.. _Pysa tutorial: https://github.com/facebook/pyre-check/tree/master/pysa_tutorial#pysa-tutorial .. _Pyre: https://github.com/facebook/pyre-check .. _README в большинстве директорий: https://github.com/python-security/pyt/tree/master/pyt#how-it-works .. _магистерская диссертация: https://projekter.aau.dk/projekter/files/239563289/final.pdf .. _несколько слайдов: https://docs.google.com/presentation/d/1JfAykAxR0DcJwwGfHmhrz1RhhKqYsnt5x_GY8CbTp7s .. _detect-secrets: https://github.com/Yelp/detect-secrets/blob/master/CHANGELOG.md#whats-new .. _defusedxml: https://pypi.org/project/defusedxml/ .. _Bandit: https://github.com/PyCQA/bandit

Python Taint

Статический анализ веб-приложений на Python, основанный на теоретических основах (графы потока управления, неподвижная точка, анализ потоков данных)


Возможности

  • Обнаружение внедрения команд, SSRF, SQL-инъекций, XSS, path traversal и т.д.

  • Широкие возможности настройки

Чтобы узнать о последних изменениях, пожалуйста, обратитесь к changelog_.

.. _changelog: https://github.com/python-security/pyt/blob/master/CHANGELOG.md

Пример использования и вывода:

.. image:: https://raw.githubusercontent.com/KevinHock/rtdpyt/master/readme_static_files/pyt_example.png

Установка

Перед продолжением убедитесь, что у вас установлен Python 3.6 или 3.7.

.. code-block:: python

root@kitploit:~
pip install python-taint
✨🍰✨

PyT также можно установить из исходников. Для этого клонируйте репозиторий и выполните:

.. code-block:: python

python3 setup.py install

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

Вскоре в каждой директории папки pyt/ вы найдёте README.rst, начните отсюда.

.. _README.rst: https://github.com/python-security/pyt/tree/master/pyt .. _отсюда: https://github.com/python-security/pyt/tree/master/pyt

Как использовать

  1. Выберите веб-фреймворк

Параметр -a определяет, для каких функций будут помечены аргументы как заражённые_, по умолчанию — Flask.

  1. (опционально) Настройте информацию об источниках и стоках

Используйте опцию -t для указания источников и стоков; по умолчанию используется этот файл_.

  1. (опционально) Настройте, какие библиотечные функции распространяют заражение

Для функций из встроенных модулей или библиотек, например, url_for или os.path.join, используйте опцию -m, чтобы указать, возвращают ли они заражённые значения при заражённых входных данных; по умолчанию используется этот файл_.

.. _Параметр -a определяет, для каких функций будут помечены аргументы как заражённые: https://github.com/python-security/pyt/tree/master/pyt/web_frameworks#web-frameworks .. _используется этот файл: https://github.com/python-security/pyt/blob/master/pyt/vulnerability_definitions/all_trigger_words.pyt .. _используется этот файл: https://github.com/python-security/pyt/blob/master/pyt/vulnerability_definitions/blackbox_mapping.json

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

.. code-block::

usage: python -m pyt [-h] [-a ADAPTOR] [-pr PROJECT_ROOT] [-b BASELINE_JSON_FILE] [-j] [-t TRIGGER_WORD_FILE] [-m BLACKBOX_MAPPING_FILE] [-i] [-o OUTPUT_FILE] [--ignore-nosec] [-r] [-x EXCLUDED_PATHS] [--dont-prepend-root] [--no-local-imports] targets [targets ...]

обязательные аргументы: targets исходный файл(ы) или директория(и) для сканирования

важные необязательные аргументы: -a ADAPTOR, --adaptor ADAPTOR Выберите адаптер веб-фреймворка: Flask (по умолчанию), Django, Every или Pylons

root@kitploit:~
-t TRIGGER_WORD_FILE, --trigger-word-file TRIGGER_WORD_FILE
                      Входной файл со списком источников и стоков

-m BLACKBOX_MAPPING_FILE, --blackbox-mapping-file BLACKBOX_MAPPING_FILE
                          Входной файл с отображением blackbox-функций

необязательные аргументы: -pr PROJECT_ROOT, --project-root PROJECT_ROOT Укажите корень проекта; важно только если входной файл не находится в корне проекта.

root@kitploit:~
-b BASELINE_JSON_FILE, --baseline BASELINE_JSON_FILE
                      Путь к базовому отчёту для сравнения (принимаются
                      только файлы в формате JSON)

-j, --json            Выводит JSON вместо отчёта.

-i, --interactive     Будет спрашивать о каждом вызове blackbox-функции
                      в цепочках уязвимостей.

-o OUTPUT_FILE, --output OUTPUT_FILE
                      Записать отчёт в файл

--ignore-nosec        Не пропускать строки с комментариями # nosec

-r, --recursive       Искать и обрабатывать файлы в поддиректориях

-x EXCLUDED_PATHS, --exclude EXCLUDED_PATHS
                      Разделяйте файлы запятыми

--dont-prepend-root   В корне проекта, например /app, импорты не
                      дополняются app.*

--no-local-imports    Если установлено, абсолютные импорты должны быть
                      относительны корня проекта. Если не установлено,
                      модули в той же директории можно импортировать
                      просто по имени.

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

Использование как пользователь: python3 -m pyt examples/vulnerable_code/XSS_call.py

Запуск тестов: python3 -m tests

Запуск отдельного тестового файла: python3 -m unittest tests.import_test

Запуск отдельного теста: python3 -m unittest tests.import_test.ImportTest.test_import

Вклад

Присоединяйтесь к нашей группе в Slack: https://pyt-dev.slack.com/ — запросите приглашение: [email protected]

Правила_

.. _Правила: https://github.com/python-security/pyt/blob/master/CONTRIBUTIONS.md

Руководство по настройке виртуального окружения

Создайте директорию для виртуального окружения и проекта

mkdir ~/a_folder

cd ~/a_folder

Клонируйте проект в директорию

git clone https://github.com/python-security/pyt.git

Создайте виртуальное окружение

python3 -m venv ~/a_folder/

Проверьте, что у вас правильные версии

python3 --version пример вывода Python 3.6.0

pip --version пример вывода pip 9.0.1 from /Users/kevinhock/a_folder/lib/python3.6/site-packages (python 3.6)

Перейдите в директорию проекта

cd pyt

В будущем просто набирайте source ~/a_folder/bin/activate, чтобы начать разработку.

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