SSRF is a vulnerability that occurs when a request is sent to a server-side component of a website and the component accepts the request without verifying that the request actually came from the expected source. This allows attackers to forge requests, tricking the server into performing actions that the server should not perform, such as accessing files, modifying server settings, or executing commands.

SSRF can occur when a website has server-side components that accept requests without verifying whether the request actually came from the expected source. This can be accomplished by injecting special characters into the URL that are not part of the protocol (e.g., '%20' instead of 'http://'), by setting the 'User-Agent' header to a string that doesn't match the expected value, or by any other means.

Example of SSRF

In a scenario where a website has been compromised with an SQL injection vulnerability, the attacker can inject SQL commands into the URL to perform some action.
For example, if the attacker wants to execute an arbitrary command on the server and retrieve input from it, they can inject this into their request:
'select * from users where id="%20' + ';#"
If the server had ANYWHERE written in its HTML code that accepts requests without verifying that the request actually came from the expected source (in this case, '%20'), then it would be vulnerable to SSRF.

How Does SSRF Work?

SSRF can occur when an attacker sends a request to a server-side component of a website and the component accepts the request without verifying that the request actually came from the expected source. This allows attackers to forge requests, tricking the server into performing actions that it should not perform, such as accessing files, modifying server settings, or executing commands.

SSRF happens when an attacker sends a special character in their URL that is not part of the protocol (e.g., '%20' instead of 'http://'), by setting the 'User-Agent' header to a string that doesn't match the expected value, or by any other means. The components on your website are vulnerable and will allow connections from anyone who sends them a request -- this is why SSRF is so dangerous!

Vulnerability Discovery

Vulnerabilities in software are discovered by either developers or security professionals. Developers will build software with the assumption that it will be used within specific contexts and environments, while security professionals analyze software to detect potential vulnerabilities. The goal of both is to discover issues before they're exploited.

Timeline

Published on: 10/13/2022 21:15:00 UTC
Last modified on: 10/14/2022 15:18:00 UTC

References