
Scannt Projektabhängigkeiten auf Dependency-Confusion-Schwachstellen und prüft Risiken der E-Mail-Übernahme von Paketbesitzern über mehrere Registries (npm, PyPI usw.).
DepFuzzer ist ein Tool, das verwendet wird, um Dependency Confusion oder Projekte zu finden, deren Inhaber-E-Mail übernommen werden kann.
/!\ Dieses Tool erfordert Python >= 3.10 /!\
$ python3 -m venv .venv
$ source .venv/bin/activate
$ pip3 install -r requirements.txt
Oder du kannst das Docker-Image verwenden:
$ docker build -t depfuzzer:latest .
$ docker run --rm -it -v "$PWD":/host depfuzzer
Das Tool kann verwendet werden, um Ordner zu durchsuchen und nach bestimmten Dateien zu suchen, in denen Abhängigkeiten deklariert sind, zum Beispiel:
package.jsonrequirements.txtpython3 main.py --provider pypi --path ~/Documents/Projets/MyProject/
Darüber hinaus kann das Tool verwendet werden, um eine bestimmte Abhängigkeit zu scannen:
python3 main.py --provider pypi --dependency requests:0.1.0
Bitte beachte, dass das Tool einen Drittanbieter namens deps.dev verwendet. Möglicherweise musst du einen Proxy angeben, um ihn zu erreichen.
______ ______
| _ \ | ___|
| | | |___ _ __ | |_ _ _ ___________ _ __
| | | / _ \ '_ \| _| | | |_ /_ / _ \ '__|
| |/ / __/ |_) | | | |_| |/ / / / __/ |
|___/ \___| .__/\_| \__,_/___/___\___|_|
| |
|_|
usage: main.py [-h]
--provider {npm,pypi,cargo,go,maven,gradle,rubygems,nuget,all}
(--path PATH | --dependency DEPENDENCY)
[--print-takeover]
[--output-file OUTPUT_FILE]
[--check-email]
Dependency checker
options:
-h, --help show this help message and exit
--provider {npm,pypi,cargo,go,maven,gradle,rubygems,all}
--path PATH Path to folder(s) to analyze
--dependency DEPENDENCY
Specify the name of one dependency to check. If you specify the version,
please use ':' to separate name and version.
--print-takeover Don't wait the end of the script to display takeoverable modules
--output-file OUTPUT_FILE
File where results will be stored
--check-email Check if the email's owner of the dependency exists. Might be longer to
analyze.
Wenn du einen Fehler gefunden hast oder eine Idee hast, zögere nicht, ein Issue in diesem Projekt zu öffnen!
Dieses Tool ist nicht dazu gedacht, alle Dependency-Confusion-Fälle in Projekten zu finden. Darüber hinaus ist bekannt, dass das Tool falsch-positive Ergebnisse erzeugt, da das Parsen von Requirements-Dateien komplex ist.
Prüfe immer manuell, ob es ausnutzbar ist, bevor du Maßnahmen ergreifst.
Bitte beachte, dass die tatsächliche Ausnutzung dieser Schwachstelle unkontrollierbare Nebenwirkungen haben kann, sei also vorsichtig.
Synacktiv kann nicht haftbar gemacht werden, wenn das Tool für böswillige Zwecke verwendet wird; es dient ausschließlich Bildungszwecken.
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die LICENSE-Datei für Details.