Skip to content
Back to skills

Sc Ssrf

ASecurity

Server-Side Request Forgery detection — URL fetching with user input, DNS rebinding, cloud metadata access

  • 4 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 12, 2026
testingpythongoawsgcpazureapisecurity

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 12, 2026

npx -y skills add aibot88/sec_skill_store --skill sc-ssrf --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sc Ssrf?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Sc Ssrf
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/aibot88-sc-ssrf/badge)](https://www.skillsdirectory.com/skills/aibot88-sc-ssrf)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: sc-ssrf
description: Server-Side Request Forgery detection — URL fetching with user input, DNS rebinding, cloud metadata access
license: MIT
metadata:
  category: security
  version: "1.0.0"
---

# SC: Server-Side Request Forgery (SSRF)

## Purpose

Detects SSRF vulnerabilities where user-controlled input influences server-side HTTP requests, enabling attackers to access internal services, cloud metadata endpoints, and private network resources. Covers direct SSRF, blind SSRF, DNS rebinding, and partial SSRF through header injection.

## Activation

Called by sc-orchestrator during Phase 2. Runs against all web applications and APIs.

## Phase 1: Discovery

### Keyword Patterns to Search
```
"requests.get(", "requests.post(", "urllib.request.urlopen(",
"http.Get(", "http.Post(", "http.NewRequest(",
"fetch(", "axios.get(", "axios.post(", "got(",
"curl_exec(", "file_get_contents(", "fopen(",
"HttpClient", "WebClient", "HttpWebRequest",
"RestTemplate", "WebClient.create(", "OkHttpClient"
```

### Data Flow: User Input → HTTP Request URL
```python
# VULNERABLE
url = request.GET['url']
response = requests.get(url)  # User controls entire URL

# VULNERABLE: Partial SSRF
host = request.GET['host']
response = requests.get(f"https://{host}/api/data")  # User controls host

# SAFE: URL allowlist
ALLOWED_HOSTS = ['api.example.com', 'cdn.example.com']
parsed = urlparse(request.GET['url'])
if parsed.hostname not in ALLOWED_HOSTS:
    return HttpResponseForbidden()
response = requests.get(request.GET['url'])
```

### Cloud Metadata Endpoints
Flag any request that could reach:
- AWS: `http://169.254.169.254/latest/meta-data/`
- GCP: `http://metadata.google.internal/`
- Azure: `http://169.254.169.254/metadata/instance`

### IP Bypass Techniques to Check
When blocklists are used, verify they catch:
- Decimal: `2130706433` (127.0.0.1)
- Hex: `0x7f000001`
- Octal: `0177.0.0.1`
- IPv6: `[::1]`, `[::ffff:127.0.0.1]`
- DNS rebinding: attacker domain resolving to internal IP

## Severity Classification

- **Critical:** SSRF accessing cloud metadata or internal admin services
- **High:** SSRF to arbitrary internal hosts, blind SSRF with out-of-band confirmation
- **Medium:** SSRF with limited impact (port scanning), partial URL control
- **Low:** SSRF with strong allowlist that may have minor bypass

## Output Format

### Finding: SSRF-{NNN}
- **Title:** Server-Side Request Forgery in {endpoint}
- **Severity:** Critical | High | Medium | Low
- **Confidence:** 0-100
- **File:** file/path:line
- **Vulnerability Type:** CWE-918 (Server-Side Request Forgery)
- **Description:** User input from {source} controls the URL in {HTTP function}.
- **Impact:** Internal network access, cloud credential theft, port scanning.
- **Remediation:** Implement URL allowlist. Block internal/private IP ranges. Use DNS resolution verification.
- **References:** https://cwe.mitre.org/data/definitions/918.html

## Common False Positives

1. **Hardcoded URLs** — HTTP requests to constant/configured URLs
2. **Webhook delivery** — outbound webhooks with pre-registered URLs (by admin)
3. **CDN/proxy integration** — fetching from known CDN endpoints
4. **Internal microservice calls** — service-to-service with configured base URLs
5. **URL validation in place** — allowlist or scheme+host validation before request

Files in this skill

  • SKILL.md3.3 KB
  • source.json592 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.