Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
pyt — Un outil d'analyse statique pour détecter les vulnérabilités de sécurité dans les applications web Python. | Kitploit
Outils/GitHubGitHub/python-security/pyt
Analyse StatiqueAnalyse Statique de Code (SAST)Analyse des VulnérabilitésAnalyse de CodeSécurité Web
GitHubpython-security/pyt

pyt

Un outil d'analyse statique pour détecter les vulnérabilités de sécurité dans les applications web Python.

Voir le dépôt
2.2k246il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

.. 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

Ce projet n'est plus maintenu

Mise à jour mars 2020 : Allez voir l'incroyable tutoriel Pysa_ qui vous permettra de trouver rapidement des vulnérabilités de sécurité dans votre code Python.

Pyre_ de Facebook est un projet fantastique qui a un avenir radieux et auquel travaillent de nombreuses personnes intelligentes. Je suggère, si vous ne connaissez pas grand-chose à l'analyse de programmes, de comprendre comment PyT fonctionne avant de plonger dans Pyre. Avec les README dans la plupart des répertoires, il y a le Mémoire de Master original et quelques diapositives_. Cela dit, je suis heureux de relire les pull requests et de vous donner les droits d'écriture si vous en faites plus que quelques-unes.

Il y a eu beaucoup d'excellents contributeurs sur ce projet, je prévois de travailler sur d'autres projets comme detect-secrets_ et d'autres (par ex. Pyre finalement) à l'avenir si vous souhaitez collaborer plus :)

Si vous êtes un ingénieur en sécurité avec, par exemple, une base de code Python sans annotations de type, que Pyre ne gérera pas, je vous suggère de remplacer vos sinks par un wrapper sécurisé (quelque chose comme defusedxml), et d'alerter sur toute utilisation du sink standard. Vous pouvez utiliser Bandit pour cela car l'analyse de flux de données n'est pas nécessaire, mais vous devrez le tailler beaucoup, en raison du taux élevé de faux positifs.

.. _tutoriel Pysa: https://github.com/facebook/pyre-check/tree/master/pysa_tutorial#pysa-tutorial .. _Pyre: https://github.com/facebook/pyre-check .. _README dans la plupart des répertoires: https://github.com/python-security/pyt/tree/master/pyt#how-it-works .. _Mémoire de Master: https://projekter.aau.dk/projekter/files/239563289/final.pdf .. _quelques diapositives: 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

Analyse statique d'applications web Python basée sur des fondements théoriques (graphes de flot de contrôle, point fixe, analyse de flux de données)


Fonctionnalités

  • Détection d'injection de commandes, SSRF, injection SQL, XSS, traversée de répertoire, etc.

  • Beaucoup de personnalisation possible

Pour un aperçu des modifications récentes, veuillez consulter le journal des modifications_.

.. _journal des modifications: https://github.com/python-security/pyt/blob/master/CHANGELOG.md

Exemple d'utilisation et de sortie :

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

Installation

Avant de continuer, assurez-vous d'avoir python3.6 ou 3.7 installé.

.. code-block:: python

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

PyT peut également être installé depuis les sources. Pour ce faire, clonez le dépôt, puis exécutez :

.. code-block:: python

python3 setup.py install

Comment ça marche

Bientôt vous trouverez un README.rst_ dans chaque répertoire du dossier pyt/, commencez ici_.

.. _README.rst: https://github.com/python-security/pyt/tree/master/pyt .. _commencez ici: https://github.com/python-security/pyt/tree/master/pyt

Comment utiliser

  1. Choisissez un framework web

L'option -a détermine quelles fonctions verront leurs arguments contaminés_, par défaut c'est Flask.

  1. (facultatif) Personnalisez les informations sur les sources et les sinks

Utilisez l'option -t pour spécifier les sources et les sinks, par défaut ce fichier est utilisé_.

  1. (facultatif) Personnalisez quelles fonctions de bibliothèque propagent la contamination

Pour les fonctions des builtins ou des bibliothèques, par ex. url_for ou os.path.join, utilisez l'option -m pour spécifier si elles renvoient des valeurs contaminées à partir d'entrées contaminées, par défaut ce fichier est utilisé_.

.. _L'option -a détermine quelles fonctions verront leurs arguments contaminés: https://github.com/python-security/pyt/tree/master/pyt/web_frameworks#web-frameworks .. _ce fichier est utilisé: https://github.com/python-security/pyt/blob/master/pyt/vulnerability_definitions/all_trigger_words.pyt .. _défaut ce fichier est utilisé: https://github.com/python-security/pyt/blob/master/pyt/vulnerability_definitions/blackbox_mapping.json

Utilisation

.. 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 ...]

required arguments: targets source file(s) or directory(s) to be scanned

important optional arguments: -a ADAPTOR, --adaptor ADAPTOR Choose a web framework adaptor: Flask(Default), Django, Every or Pylons

root@kitploit:~
-t TRIGGER_WORD_FILE, --trigger-word-file TRIGGER_WORD_FILE
                      Input file with a list of sources and sinks

-m BLACKBOX_MAPPING_FILE, --blackbox-mapping-file BLACKBOX_MAPPING_FILE
                          Input blackbox mapping file

optional arguments: -pr PROJECT_ROOT, --project-root PROJECT_ROOT Add project root, only important when the entry file is not at the root of the project.

root@kitploit:~
-b BASELINE_JSON_FILE, --baseline BASELINE_JSON_FILE
                      Path of a baseline report to compare against (only
                      JSON-formatted files are accepted)

-j, --json            Prints JSON instead of report.

-i, --interactive     Will ask you about each blackbox function call in
                      vulnerability chains.

-o OUTPUT_FILE, --output OUTPUT_FILE
                      Write report to filename

--ignore-nosec        Do not skip lines with # nosec comments

-r, --recursive       Find and process files in subdirectories

-x EXCLUDED_PATHS, --exclude EXCLUDED_PATHS
                      Separate files with commas

--dont-prepend-root   In project root e.g. /app, imports are not prepended
                      with app.*

--no-local-imports    If set, absolute imports must be relative to the
                      project root. If not set, modules in the same
                      directory can be imported just by their names.

Utilisation depuis les sources

Utilisation comme un utilisateur python3 -m pyt examples/vulnerable_code/XSS_call.py

Exécution des tests python3 -m tests

Exécution d'un fichier de test individuel python3 -m unittest tests.import_test

Exécution d'un test individuel python3 -m unittest tests.import_test.ImportTest.test_import

Contributions

Rejoignez notre groupe Slack : https://pyt-dev.slack.com/ - demandez une invitation : [email protected]

Directives_

.. _Directives: https://github.com/python-security/pyt/blob/master/CONTRIBUTIONS.md

Guide de configuration de l'environnement virtuel

Créez un répertoire pour contenir l'environnement virtuel et le projet

mkdir ~/a_folder

cd ~/a_folder

Clonez le projet dans le répertoire

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

Créez l'environnement virtuel

python3 -m venv ~/a_folder/

Vérifiez que vous avez les bonnes versions

python3 --version exemple de sortie Python 3.6.0

pip --version exemple de sortie pip 9.0.1 from /Users/kevinhock/a_folder/lib/python3.6/site-packages (python 3.6)

Déplacez-vous dans le répertoire du projet

cd pyt

À l'avenir, tapez simplement source ~/a_folder/bin/activate pour commencer à développer.

Télécharger l’outil