SSRF漏洞

1、SSRF的概念

SSRF(服务器端请求伪造英文缩写)主要指攻击者利用服务端构造恶意请求,利用服务器作为代理访问内网或其他受限资源。

2、SSRF漏洞的成因

SSRF漏洞形成的原因:主要是因为服务端提供了从其他服务器应用获取数据的功能,然后服务端又未对用户输入的URL进行严格的过滤和验证,导致攻击者可以控制服务器发起任意HTTP请求。(能对外网发起网络请求就有可能存在SSRF漏洞)

典型的场景有:

网页内容抓取(如RSS订阅、URL预览)

文件下载功能(如通过URL下载图片或文档或源代码)

代理服务(如转发表单数据到第三方)

3、SSRF漏洞的危害

内网渗透:可以通过SSRF访问内网敏感服务(如数据库)

云环境风险:攻击者可以访问云服务 元数据接口(如AWS/azure)

文件读取:可以利用 file:// 协议 协议读取服务器本地文件(如 /etc/passwd)

4、SSRF漏洞的攻击方式

1、对外网、服务器所在内网、本地 进行端口扫描(获取一些服务的banner信息)

2、攻击运行在内网或本地的应用程序(如溢出)

3、攻击内外网的web应用,主要使用get参数就可以实现攻击(如sqli、struts2)

4、对内网web应用进行指纹识别,通过访问默认文件实现(就是通过访问一些常见的默认文件或路径来确定内网 Web 应用的类型和版本)

5、利用file:// 协议读取本地文件

攻击手法

绕过内网IP限制

利用URl解析歧义(如PHP的 parse_url() 函数会解析 host=jd.com ,但实际请求的是127.0.0.1)

特殊IP格式:八进制IP(0177.0.0.1)或十六进制IP(0x7f000001)

访问元数据服务

攻击者可以获取云服务器的 IAM 角色、临时密钥等

结合Redis反弹shell

通过 SSRF 访问内网 Redis 服务,写入恶意命令实现反弹 Shell

5、实操

今日靶场:

NSSCTF

NSSRound#28 Teamez_ssrf

$host = parse_url($url, PHP_URL_HOST);

使用 parse_url 函数解析 url 并提取主机部分,赋值给变量 host ;

gethostbyname()函数将主机名解析为ip地址,赋值给变量 $ip;

禁止访问的ip地址列表包含 127.0.0.1 和 ::1(IPv6的本地回环地址),如果包含就报错;

初始化一个 cURL 会话,并设置目标 URL 为 $url;

设置 CURLOPT_RETURNTRANSFER 为 true,使 cURL 将返回的数据作为字符串返回,而不是直接输出;

执行 cURL 会话,将结果存储在 $response 中;

if (curl_errno($ch)) {

echo json_encode("error" =\> curl_error($ch));

} else {

echo $response;

}

剩下就是检查cURL是否发生错误,没有就输出请求响应内容

所以需要用url作为参数,以 http:// 开头构造请求,让服务器访问本地的 /flag 路由就能拿到flag。

那本地的ip无疑就是 127.0.0.1 但其为黑名单,无法直接用

那么可以利用域名解析的一些特性,例如使用 0.0.0.0 来代替 127.0.0.1,在某些网络配置中,0.0.0.0 可能被解析为 127.0.0.1 即可能被解析为服务器的本地网络接口,从而允许访问内网资源

然后接上 /flag 即可得到想要的信息

NISACTF 2022easyssrf

我上来就输了个 flag 结果得到了提示

直接 fl4g 是不行的,都害羞上了

回去看到题目知识点提示php伪协议

那就用伪协议读取一下 /fl4g

复制代码
file:///fl4g

注意这里为什么是3个/

(因为 file:// 是一个协议前缀,用于告诉PHP你想要访问的是本地文件系统。而 file:// 之后,路径的解析规则与URL类似,在URL中,路径通常以 / 开头,表示根目录。)

又得到提示

然后一访问,得到代码

看出来是文件包含了,直接用 file 读取flag即可

HNCTF 2022 WEEK2ez_ssrf

进来就是Apache服务器的貌似是配置信息页面还是什么

注意到提示让我们访问 index.php

访问后又得到一串代码

相关推荐
风123456789~5 小时前
【架构专栏】第18章 安全架构设计 1/3
安全·架构·安全架构
天远API6 小时前
零信任架构实战:基于天远运营商三要素简版V即时版查询构建自动化司乘安全绑定网关
人工智能·安全·架构·自动化
linux_cfan12 小时前
videojs v10 源代码系列解读:34 · `createComposition`:类型安全的冲突检测
前端·安全
hasty12 小时前
传完再检查为何太晚?LXD 迁移流的文件写入边界
安全·系统安全
每天题库12 小时前
架子工脚手架工题库:安全操作考点与模拟题练习指南
学习·安全·考试·题库·考证
白帽攻防录13 小时前
SRC 挖洞:WSO2 JWT 算法混淆绕过深度复盘,CVE-2026-5430 不支持的算法怎么变成管理员
网络·算法·安全·网络安全·jwt
正经教主14 小时前
【FDE系列】阶段3:Day 58:Prompt 安全 — 注入、越狱与防护
网络·人工智能·安全·prompt·fde
hasty14 小时前
配置禁止重定向,为何请求仍继续?Axios Fetch 适配器的安全契约
安全
jimmyleeee15 小时前
大模型安全之三十六:大模型数据管理----从投毒防御到偏见治理的完整框架
人工智能·安全
姜鱼问生16 小时前
三层防火墙排查:Nginx 配好了浏览器还打不开
nginx·安全