
Outil automatisé pour détecter les vulnérabilités de « mass assignment » en extrayant des paramètres d’une requête HTTP et en les appliquant à une autre, avec prise en charge d’en-têtes personnalisés, de méthodes, de limitation de débit et de JSON imbriqué.
Mass Assigner est un outil puissant conçu pour identifier et exploiter les vulnérabilités d'assignation massive (mass assignment) dans les applications web. Il fonctionne en récupérant d'abord les données d'une requête spécifiée, par exemple en obtenant les données d'un profil utilisateur. Ensuite, il tente systématiquement d'appliquer chaque paramètre extrait de la réponse à une seconde requête fournie, un paramètre à la fois. Cette approche permet de tester et d'exploiter automatiquement les potentielles vulnérabilités d'assignation massive.
Cet outil modifie activement les données côté serveur. Assurez-vous d'avoir les autorisations nécessaires avant de l'utiliser. Toute activité non autorisée ou illégale utilisant cet outil relève de votre seule responsabilité.
Installer les dépendances
pip3 install -r requirements.txt
Exécuter le script
python3 mass_assigner.py --fetch-from "http://example.com/path-to-fetch-data" --target-req "http://example.com/path-to-probe-the-data"
Forbidden Buster accepte les arguments suivants :
-h, --help show this help message and exit
--fetch-from FETCH_FROM
URL to fetch data from
--target-req TARGET_REQ
URL to send modified data to
-H HEADER, --header HEADER
Add a custom header. Format: 'Key: Value'
-p PROXY, --proxy PROXY
Use Proxy, Usage i.e: http://127.0.0.1:8080.
-d DATA, --data DATA Add data to the request body. JSON is supported with escaping.
--rate-limit RATE_LIMIT
Number of requests per second
--source-method SOURCE_METHOD
HTTP method for the initial request. Default is GET.
--target-method TARGET_METHOD
HTTP method for the modified request. Default is PUT.
--ignore-params IGNORE_PARAMS
Parameters to ignore during modification, separated by comma.
Exemple d'utilisation :
python3 mass_assigner.py --fetch-from "http://example.com/api/v1/me" --target-req "http://example.com/api/v1/me" --header "Authorization: Bearer XXX" --proxy "http://proxy.example.com" --data '{\"param1\": \"test\", \"param2\":true}'