攻击者是如何利用SSRF漏洞读取本地文件并滥用AWS元数据的

漏洞简介

首先,我抓取并手动执行了该应用程序上的所有用户操作。之后,我通过burp检查了http历史记录中的所有的请求,坦率的说我当时想要挖掘url重定向漏洞。所以,我通过Burp搜索了url=所有可能的参数,并最终发现了一个如下所示的网址:

https://example.com/viewimage/?url=AWS图像位置(该图像存储在AWS,所以需要从这里加载)

实际上,这个端点就是用来加载我长传到网站上的图像的,而我的图像是存储在aws存储桶中的。很明显,既然它要加载内容,那为什么不从其他域加载内容呢?试试RFI如何?

下面是我所采取的具体步骤:

尝试XSS(可惜失败了)

首先,我尝试挖掘一个XSS漏洞。为此,我参阅了关于挖掘XSS漏洞的文章。我的做法就是在网址中添加http://brutelogic.com.br/poc.svg。 所以,最终制作出来的网址变成https://example.com/viewimage/?url=http://brutelogic.com.br/poc.svg。 之后,我访问了该网址,但它并没有加载内容,而是下载了一个简单的文本文件,不过该文件内并没有任何内容。天空彩

尝试读取本地文件(成功了)

接下来,我尝试通过URL模式来读取内部数据并让服务器执行某些操作(如file:///、dict://、ftp://、gopher://等)。所以,最终制作出来的网址为https://example.com/viewimage/?url=file:///etc/passwd。

然后,又下载了一个文本文件:

攻击者是如何利用SSRF漏洞读取本地文件并滥用AWS元数据的

当我检查下载的文本文件时,对于其中的内容倍感惊讶:这分明就是etc/passwd文件的内容。

攻击者是如何利用SSRF漏洞读取本地文件并滥用AWS元数据的

现在,既然发现这个网站会加载来自AWS的图像,那么为什么不设法提取内部的AWS元数据呢?

读取AWS EC2元数据

为了对url参数进行相应的修改,需要查看当前运行实例中所有类别的实例元数据,为此,可以借助于下列URI:

http://169.254.169.254/latest/meta-data

所以,最终精心设计的URL变为https://example.com/viewimage/?url=Location。

之后不出所料,它再次下载了一个文本文件,该文件内容如下所示:

攻击者是如何利用SSRF漏洞读取本地文件并滥用AWS元数据的

接下来,我们将尝试读取更为机密的信息,具体方法如下所示:

http://169.254.169.254/latest/meta-data/iam/security-credentials/aws-elasticbeanorastalk-ec2-role

这样,我们就能读取秘密访问密钥、令牌等机密信息了。之后,将这些信息导出后,就可以通过AWS客户端访问……这个,你们懂的。

简单来说,利用这里的安全权限,我们就可以通过SSRF漏洞实现RCE了。

获取私有访问秘钥等登陆凭证后进一步渗透测试的详细介绍,请参阅https://www.notsosecure.com/exploiting-ssrf-in-aws-elastic-beanstalk/。

另外,该漏洞我已经提交了相关部门,并且现在已经得到了修复,同时,我还收到了4位数的奖金。希望本文对大家有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值