# Ssrf To Internal Service Breach

Escalate a suspected or confirmed Server-Side Request Forgery into proof of...

- Repository: https://github.com/vigolium/vigolium (1141 stars)
- Category: Documents
- License: MIT
- Last updated: 2026-10-25
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add vigolium/vigolium --skill ssrf-to-internal-service-breach -g -a claude-code -y`
Codex: `npx skills add vigolium/vigolium --skill ssrf-to-internal-service-breach -g -a codex -y`
Cursor: `npx skills add vigolium/vigolium --skill ssrf-to-internal-service-breach -g -a cursor -y`
Gemini CLI: `npx skills add vigolium/vigolium --skill ssrf-to-internal-service-breach -g -a gemini-cli -y`

## Description

Escalate a suspected or confirmed Server-Side Request Forgery into proof of internal-service access, cloud metadata, internal-only APIs, database greetings, or redacted-but-fetchable HTTP. Use when a parameter takes a URL (image proxy, webhook, fetcher, URL preview, PDF render) and the server reaches outbound on your behalf, or when an audit finding tags CWE-918. Confirms reachability via OAST, then walks targeted internal endpoints, ending with a finding sized by the highest-value asset reached.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# SSRF → Internal Service Breach

You have a parameter or endpoint that makes the server fetch a URL of
your choosing. Your job is to prove the server reaches an internal
target you, the external user, can't. Persist a finding sized by what
you actually reached, not by the existence of the SSRF.

## When this skill applies

- A request parameter is a URL: `?url=`, `?image=`, `?webhook=`,
  `?callback=`, `?fetch=`, `?source=`, `?preview=`.
- An endpoint clearly fetches on behalf of the user: PDF renderers,
  link preview / OG-tag fetchers, OAuth callback verifiers, image
  thumbnailers, RSS importers, SSO redirect handlers.
- The response includes a fetched body excerpt, content-length, status,
  error string, or response time that varies with the URL you supply.
- Audit finding: CWE-918.

## Workflow

### 1. Confirm outbound reachability

Mint a canary with `oast_mint` (kind: `ssrf-probe`). Inject the canary
URL into the suspect parameter via `replay_request`. Poll with
`oast_poll` for 30-60 seconds.

- **HTTP callback observed** → server reaches your URL via HTTP. SSRF
  confirmed with HTTP egress.
- **DNS callback only** → SSRF confirmed but DNS-only (a strict egress
  filter dropped the HTTP request after the lookup). Still useful as
  exfil channel, but limits what you can do.
- **No callback** → either no SSRF, or filtered, or no internet egress
  from the server. Move to step 2's targeted probes anyway, some SSRFs
  only work against internal hosts.

`remember` the result as `ssrf-egress`.

### 2. Probe metadata services

Cloud metadata is the highest-impact target. Try in order; stop on the
first hit:

The rest: https://github.com/vigolium/vigolium/blob/HEAD/internal/resources/olium/skills/ssrf-to-internal-service-breach/SKILL.md
