API Security
Overview
Modern web applications extensively use APIs, either as Single Page Apps (SPAs) or to populate traditional applications with dynamic data. Because these APIs operate “behind the scenes,” developers sometimes make dangerous assumptions:- Authentication can be relaxed
- Authorization checks are unnecessary
- Input validation is less critical
- Older API versions can remain accessible
Objective
Exploit weak API implementations across different security levels to access unauthorized data, elevate privileges, or execute commands.API Specification
DVWA includes a complete OpenAPI 3.0 specification for its REST API.OpenAPI Document
Location:vulnerabilities/api/openapi.yml
vulnerabilities/api/openapi.yml:13-436
Login Controller (/vulnerabilities/api/v2/login/)
vulnerabilities/api/source/low.php:46-97
Exploitation
Observation: The application calls/vulnerabilities/api/v2/user/
Attack Vector: If v2 exists, v1 might still be accessible
Step 1: Test version 1 endpoint
Access directly in browser or via proxy:
Key Vulnerability
Legacy API versions often contain:- Insufficient filtering (exposing sensitive fields)
- Weaker authentication
- Known vulnerabilities
- Deprecated security controls
Medium Level: Mass Assignment
Vulnerable Code
The medium level allows users to update their name:In-Browser Exploitation
Set breakpoint inupdate_name() function after data variable creation:
vulnerabilities/api/src/HealthController.php:83-102
Exploitation
Vulnerability: User input concatenated directly into shell command Attack Vector: Command injection via target parameter Step 1: Normal requestvulnerabilities/api/src/LoginController.php:75-147
Token Management
Mass Assignment Prevention
OWASP API Security Top 10
| Risk | Description | DVWA Example |
|---|---|---|
| API1: Broken Object Level Authorization | Access objects belonging to other users | User endpoint without auth checks |
| API2: Broken Authentication | Weak auth implementation | Legacy v1 endpoint |
| API3: Broken Object Property Level Authorization | Mass assignment | Medium level user update |
| API4: Unrestricted Resource Access | No rate limiting | All levels |
| API5: Broken Function Level Authorization | Access admin functions as user | Level parameter in medium |
| API6: Unrestricted Access to Sensitive Business Flows | Automate sensitive operations | Order management |
| API7: Server Side Request Forgery | SSRF via API parameters | Connectivity check |
| API8: Security Misconfiguration | Exposed debug endpoints | OpenAPI docs accessible |
| API9: Improper Inventory Management | Undocumented v1 endpoint | Low level versioning |
| API10: Unsafe Consumption of APIs | Injection via third-party APIs | High level command injection |
References
This module demonstrates real-world API vulnerabilities for educational and research purposes.
