Server-Side Request Forgery

Server-Side Request Forgery (SSRF) is a vulnerability that takes place when an application retrieves remote resources without validating user input. An attacker can supply their own input, in the form of a URL, to control the remote resources that are retrieved by the targeted server. When you have control over what resources a server requests then you can gain access to sensitive data or worse completely compromise a vulnerable host. SSRF is number 10 on the 2021 OWASP Top 10 list and is a growing threat to APIs.

SSRF Impact

The impact of this vulnerability is that an attacker would be able to leverage the target server to perform and process requests that they supply. The attacker could supply URLs that expose private data, scan the target's internal network, or compromise the target through remote code execution. Note that bug bounties payouts for SSRF are driven based on the impact that can be demonstrated with a proof of concept. In other words, make sure to experiment with your SSRF findings and see what can be compromised with them.

To drive the point home check out the bug bounty rewards for SSRF guidelines on Facebook (https://m.facebook.com/whitehat/payout_guidelines/ssrf/):

Payouts

  • $40,000 - SSRF in production and reading the response (must include canary in your report).

  • $30,000 - Blind SSRF in production and not reading the response (must trigger the canary alert).

  • $10,000 - Hitting arbitrary endpoints within a corporate network (e.g. through an unpatched CVE on a third-party system).

  • $1,000 - If you can only hit a small number of endpoints within the corporate network (e.g. a small set of hosts or loopback only).

As you can see, the more that you can do with an SSRF finding, the greater the impact and the higher the reward.

Last updated