Modular API security testing project with category-specific discovery, test, and exploit scripts.
- Category folders for API security risks.
*_discovery.pyscripts to enumerate endpoints and weak signals.*_test.pyscripts to validate vulnerabilities.*_exploit.pyscripts to demonstrate impact in an authorized lab.- Shared HTTP helper utilities in
/Users/harshitaaa/Projects/API_Pentest/utils/api_utils.py.
git clone <your-repo-url>
cd API_Pentestpython3 -m venv .venv-discovery
python3 -m venv .venv-test
python3 -m venv .venv-exploitsource .venv-discovery/bin/activate
pip install requests
deactivate
source .venv-test/bin/activate
pip install requests
deactivate
source .venv-exploit/bin/activate
pip install requests
deactivateexport API_BASE_URL="http://localhost:8000"The scripts use API_BASE_URL from environment and default to http://localhost:8000.
source .venv-discovery/bin/activate
python BOLA/bola_discovery.py
python MassAssignment/mass_assignment_discovery.py
python NoSQLi/nosqli_discovery.py
python PathTraversal/path_traversal_discovery.py
python CommandInjection/command_injection_discovery.py
deactivatesource .venv-test/bin/activate
python BOLA/bola_test.py
python MassAssignment/mass_assignment_test.py
python NoSQLi/nosqli_test.py
python PathTraversal/path_traversal_test.py
python CommandInjection/command_injection_test.py
deactivatesource .venv-exploit/bin/activate
python BOLA/bola_exploit.py
python MassAssignment/mass_assignment_exploit.py
python NoSQLi/nosqli_exploit.py
python PathTraversal/path_traversal_exploit.py
python CommandInjection/command_injection_exploit.py
deactivateExisting categories already in repo:
BOLA(Broken Object Level Authorization)BFLA(Broken Function Level Authorization)BUA(Broken User Authentication)BusinessLogicRateLimitMassAssignment(BOPLA)InventoryManagement(Improper Inventory Management)SecurityMisconfigUnsafeConsumptionSSRFSQLiInformationDisclosureGraphQLJWTXXECORSInsecureDeserialization
New categories added in this update:
NoSQLiPathTraversalCommandInjection
Each category follows:
<Category>/
<category>_discovery.py
<category>_test.py
<category>_exploit.py
- Start with discovery outputs and prioritize endpoints that return
200/201/204. - Move only confirmed candidates into
*_test.pyvalidation. - Run exploit scripts only on isolated/local targets with permission.
- Keep payloads and observations per category in your report artifacts.
Use these scripts only on systems you own or are explicitly authorized to test.