Mass-Assigner - Simple Tool Made To Probe For Mass Assignment Vulnerability Through JSON Field Modification In HTTP Requests
Mass Assigner is a powerful tool designed to identify and exploit mass assignment vulnerabilities in web applications. It achieves this by first retrieving data from a specified request, such as fetching user profile data. Then, it systematically attempts to apply each parameter extracted from the response to a second request provided, one parameter at a time. This approach allows for the automated testing and exploitation of potential mass assignment vulnerabilities.
Disclaimer
This tool actively modifies server-side data. Please ensure you have proper authorization before use. Any unauthorized or illegal activity using this tool is entirely at your own risk.
Features
- Enables the addition of custom headers within requests
- Offers customization of various HTTP methods for both origin and target requests
- Supports rate-limiting to manage request thresholds effectively
- Provides the option to specify "ignored parameters" which the tool will ignore during execution
- Improved the support in nested arrays/objects inside JSON data in responses
What's Next
- Support additional content types, such as "application/x-www-form-urlencoded"
Installation & Usage
Install requirements
pip3 install -r requirements.txt
Run the script
python3 mass_assigner.py --fetch-from "http://example.com/path-to-fetch-data" --target-req "http://example.com/path-to-probe-the-data"
Arguments
Forbidden Buster accepts the following arguments:
-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.
Example Usage:
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}'
Source: www.kitploit.com