Home / Knowledge hub / SSRF
Knowledge hub
SSRF
Making your server fetch a URL of the attacker's choosing.
What it means
SSRF stands for server-side request forgery. Your application takes a URL, or something it builds a URL from, and fetches it. An attacker supplies an address of their choosing and your server goes and gets it for them.
The target is usually internal: an admin service, a cloud metadata endpoint, a database console, something nobody meant to expose.
Why it matters
The request carries your server's trust. Internal services often skip authentication because they assume anything calling them is already inside, and your application is inside.
That turns a small feature, fetching a preview or an avatar, into a way to read internal systems from the public internet. It frequently leads to credentials, because cloud platforms hand them out at addresses only local callers should reach. Teams also tend to find it late, because nobody thinks of a link preview as a way for a stranger to make requests inside your network.
How it shows up
Look for any feature that accepts a URL: webhook targets, image imports from a link, document converters, link previews, anything that says paste a URL here.
Blocking a list of bad addresses does not hold, because redirects and unusual address formats get around it. An allowed list of destinations, resolved before the request goes out, holds better, and a service that cannot reach your internal network at all holds best. Watch the response as well. An application that shows fetched content back to the user hands over the answer directly. One that only differs in response time still tells an attacker which internal hosts reply. Log the outbound requests your application makes. Most teams cannot say what their own servers fetched yesterday.
Questions people ask
SSRF, answered
How serious is an SSRF finding?
It depends on what your server can reach. On its own it fetches a URL.
In a cloud account it often reaches a metadata service and returns credentials, and at that point it is as serious as findings get.
What is blind SSRF?
The server makes the request but never shows you the response. You confirm it by pointing the application at a host you control and watching for the lookup.
Blind does not mean harmless. The request still happens inside your network.
Why does 169.254.169.254 keep coming up?
That address serves instance metadata on the major cloud platforms, including temporary credentials, and it answers only local callers.
An SSRF flaw turns your application into a local caller working on somebody else's behalf.
Is blocking internal IP ranges enough?
No. Redirects, DNS names that resolve inwards and unusual address formats all get around a block list.
An allowed list of destinations, resolved before the request goes out, holds up far better.
Is SSRF the same as CSRF?
No, despite the names. CSRF makes a user's browser send a request.
SSRF makes your server send one, which is why it reaches things the public internet cannot.
Related
Terms that sit next to this one
Injection
Input that ends up running as a command instead of being read as text.
Untrusted input
Anything that arrived from outside your own code, and is therefore suspect.
Allowlist
A list of what you permit, with everything else refused by default.
Lateral movement
Moving from the first thing reached to the things worth taking.
Webhook
A URL you hand to another service so it can call you when something happens.
Somewhere you paste in a URL?
SSRF counts as one of the ten vulnerability classes Cyberlop tests, and it reads the code to see where that address actually goes. Ask us to look at one of your applications.
Or start with a $199 pilot on one application: thirty days, success criteria agreed before day one, credited against the annual if you convert.