Dec 29, 2025
What is SSRF? The Simple Explanation
Server-Side Request Forgery (SSRF) occurs when a web application fetches resources from URLs you control, potentially accessing internal systems it shouldn't.
Think of it this way:
You โ Website โ "Fetch this URL for me" โ Internal AWS/Database/Admin PanelThe website acts as your proxy, making requests from its trusted internal position.
Real Healthcare Example
During testing a healthcare platform, I discovered:
Normal request: /api/image?url=https://logo.com/image.png โ
SSRF exploit: /api/image?url=http://169.254.169.254/latest/meta-data/ ๐ฅThe response leaked:
{
"AccessKeyId": "ASIAX7ABC123...",
"SecretAccessKey": "wJalrXU...",
"Token": "..."
} 2. Internal Admin Panels (localhost services) 3. Sensitive Databases (internal network resources) 4. Network Mapping (port scanning internals)
One SSRF = Complete infrastructure compromise.
The Vulnerable Code Pattern
// โ Vulnerable
app.get('/api/fetch', async (req, res) => {
const response = await fetch(req.query.url);
res.send(await response.text());
});
javascript
// โ
Secure
app.get('/api/fetch', async (req, res) => {
const url = req.query.url;
// Block dangerous destinations
const blockedIPs = ['127.0.0.1', '169.254.169.254', '10.', '192.168.'];
if (blockedIPs.some(ip => url.includes(ip))) {
return res.status(400).json({ error: 'Invalid URL' });
}
// Whitelist allowed domains only
if (!url.match(/^https:\/\/(yourdomain\.com|cdn\.com)/)) {
return res.status(400).json({ error: 'URL not allowed' });
}
const response = await fetch(url);
res.send(await response.text());
});Essential Security Checklist
โ
Block private IPs: 127.0.0.1, 169.254.169.254, 10.0.0.0/8
โ
Whitelist allowed domains only
โ
Never trust user-supplied URLs
โ
Disable redirect following
โ
Validate response contentWhy Companies Pay Big for SSRF
๐ฐ Typical bounties: $5,000 - $50,000+
๐ฐ Healthcare + Cloud = Critical severity
๐ฐ Often chains to RCE/data exposure
๐ฐ 5-minute discovery timeStart Hunting Today
Step 1: Run your recon โ find URL parameters
Step 2: Test http://169.254.169.254/latest/meta-data/
Step 3: Document + report โ Get paid