User Input Directly Used in HTTP Request URLs
Express applications construct server-side HTTP requests using user-controlled input directly as the URL without validation: axios.get(req.query.url) or fetch(req.body.imageUrl). Attackers provide URLs pointing to internal services (http://localhost:6379/), cloud metadata endpoints (http://169.254.169.254/latest/meta-data/), or internal infrastructure (http://internal-db:5432/). This enables access to services protected by firewall rules that allow connections from the application server but not from the internet, bypassing network-based access controls.