新2手机管理端(www.22223388.com):AWS 控制台中的 XSS

欧博亚洲网址

欢迎进入欧博亚洲网址(www.aLLbetgame.us),欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。

,

可以想象,对 AWS API 举行模糊测试并非易事。有数百种 AWS 服务和数千种可能的操作。再加上无数的参数相连系,每个协议都有差其余花样、差其余区域、差其余版本以及我们想要使用的所有类型的输入,这使得它异常耗时。

为了增添这个难度,我将正当流量发送到 API,这反过来可以确立需要花钱的资源。效果,我一直盯着计费仪表板,并删除确立的任何内容。我还一直在浏览 AWS 控制台以查找任何错误。

在这些检查历程中,我有时发现了 Elastic Beanstalk 更改历史纪录中的一条错误新闻。

AWS Elastic Beanstalk 是一项易于使用的服务,用于在熟悉的服务器(例如 Apache 、Nginx、Passenger 和 IIS )上部署和扩展使用 Java、.NET、PHP、Node.js、Python、Ruby、GO 和 Docker 开发的 Web 应用程序和服务。

你只需上传代码,Elastic Beanstalk 即可自动处置包罗容量预设置、负载平衡、自动扩展和应用程序运行状态监控在内的部署事情。同时,你能够完全控制为应用程序提供支持的 AWS 资源,并可以随时接见底层资源。

Elastic Beanstalk 不分外收费 – 你只需为存储和运行应用程序所需的 AWS 资源付费。

经由一番剖析,我突然明了了,这是一个平安隐患。

那么,什么是“b.requestParameters”,为什么 AWS 控制台不以为它是 null?通过剖析,在 beanstalk-xp_en.min.js 的第 17240 行(该行号来自美化的 JS 输出)有对 b.requestParameters 的引用。

通过调试器,可以清晰地看到“更改历史纪录”页面正在从 CloudTrail 加载事宜并显示它们,详情请点击这里。


Elastic Beanstalk 的更改历史纪录功效是一项异常新的功效(于 2021 年 1 月宣布),允许你查看 EB 环境设置的更改。

这并没有回覆为什么b.requestParameters是null,发生了什么?从调试来看,很显著它是在CloudTrail事宜上寻找一个特定的属性,而模糊器没有提供它。在CloudTrail中查找谁人特定事宜,可以一定的是,在实验更新环境操作时我没有提供任何参数,因此 requestParameters 为null。

最后我们找到了罪魁罪魁,然则我们该若那边理我们新发现的破绽呢?

HTML 注入

从 JavaScript 来看,很显著我们对两个值有高度的控制。那些是用户署理和环境名称。此外,这些值似乎被直接插入到 DOM 中。

我会想到跨站点剧本 (XSS) 攻击,但 AWS 通常异常善于在浏览器中出现内容之前对其举行整理。这是我在使用 SSM 署理时遇到的第一手履历。因此,我以为任何恶意内容都市在显示之前被整理清洁。

为了测试这一点,我将一个破损图像符号的简朴有用载荷放在一起(我有意将源设置为“x”)。我喜欢使用这个作为测试,由于若是它被渲染,它会给我一个很好的视觉指示,否则我只会看到编码的值。

我修改了我的框架,将用户署理设置为有用负载,点击发送并守候。在守候了10分钟后,我刷新了控制台并被惊呆了。

这是 AWS 控制台中的有用 HTML 注入!下一步,XSS 会起作用吗?更改了有用负载,发送了它,然后守候了几分钟。坏新闻是没有 JavaScript 执行,究其缘故原由内容平安战略 (CSP) 阻止了我。若是你不熟悉,你可以将 CSP 视为浏览器可以加载某些资源的位置的指南。 JavaScript 可以从某些域加载,字体可以从差其余域加载……。

虽然 CSP 不能缓解跨站点剧本攻击,但它可以缓解影响。在本例中,CSP 阻止了内嵌剧本,这导致我的 XSS 负载失败。

通过 CSP 查找控制台,我找不到解决方式。这给我们留下了 HTML 注入,这有点令人失望。你能做一些缓慢的网络钓鱼或社会工程设计吗?是的,也许。它很精练,但仅限于在 AWS 控制台中找到的上下文。我以为最现实的是,你可以实验插入带有链接的“错误”新闻,并实验以这种方式诱骗某人。


有趣的是,你只需要与帐户关联的有用凭证即可运行。这些凭证不需要 Elastic Beanstalk 或 CloudTrail 权限。此更改历史纪录仪表板也会加载失败的实验。因此,纵然你对某个角色或用户拥有零权限,你更新 Elastic Beanstalk 环境的实验也会显示出来。

iframe 注入

由于没有找到绕过 CSP 的方式,我向一些同伙追求想法。在和我的同伙Chris谈天时(查看他在schneidersec.com的博客),他注重到iframe部门有一些有趣的器械。

新2手机管理端

新2手机管理端(www.22223388.com)实时更新发布最新最快的新2代理线路、新2会员线路、新2备用登录网址、新2手机管理端、新2手机版登录网址、新2皇冠登录网址。

内容平安战略允许你从与控制台设置在统一区域的 S3 存储桶加载 iframe。我们都对此感应惊讶,岂非你不能确立自己的存储桶并托管 HTML 吗?我们不明了为什么不这样做,以是我确立了一个 S3 存储桶,放入了一些 HTML 并更改了我的负载以确立一个 iframe。这导致了这个:

现实上,你可以从 S3 存储桶加载 iframe!

提交给 AWS

没有看到通过 HTML/iframe 注入解决的 CSP 的显著方式。固然,我的意思是 AWS 控制台中的任何破绽都是整齐的,但 HTML 注入对于渗透测试讲述来说是多余的。无论哪种方式,我都向 AWS 破绽披露设计发送了一封电子邮件以及一些屏幕截图和看法证实(将HTML有用负载粘贴到用户署理中用于更新环境API挪用的Python剧本)。

AWS 平安团队迅速做出回应,并示意他们已将信息转发给服务团队。这样我等了约莫两周,并注重到我的“更改历史纪录”页面中不再有任何事宜。为此,我专门确立了一些新的 CloudTrail 事宜,但它们仍然没有泛起。

“也许他们现在对事宜有了验证?”要么检查恶意输入,要么检查它是否影响现有环境?”我可以看出,认真构建表的JavaScript已经被修改了,然则它被缩小了,而且区分新旧外观太耗时了。因此,我确立了一个正当的Elastic Beanstalk应用程序和环境。当我这样做的时刻,我想看看是否有其他的字段也容易受到HTML注入的影响,确实有一些字段。示例如下:

为了提供辅助,我又给AWS发了一封邮件,内里有一些截屏。对于不能再次填充更改历史(纵然是真正的应用程序)感应失望,就在这个时刻,我发现使用的是AngularJS而不是Angular。

模板注入

当意识到页面使用了AngularJS时,引入了另一种我们可以实验的注入攻击,客户端模板注入。当攻击者可以提供自己的模板语言输入时,就会发生模板注入攻击。这将导致在用户的浏览器中对这些输入举行评估。例如(取决于模板花样),你可以插入{{2+2}},它的值是4。

在对自己之前没有意识到AngularJS的情形感应异常失望之后,我确立了一个带有模板名称的应用程序,并刷新了浏览器。

我们已经确认它容易受到模板注入的影响,但我们可以从那里最先呢?好新闻是 PortSwigger 的 Gareth Heyes 在这方面做了大量的研究。

简而言之,我们可以行使模板注入作为一种方式来执行随便JavaScript并获得跨站点剧本!以前,这需要一些事情来转义Angular表达式沙箱,然而,在AngularJS 1.6中,沙箱被删除了。由于我们使用的是1.8.1,以是我们不必忧郁它,相反,我们可以使用以下有用载荷,详情请点击这里。

{{constructor.constructor('alert(1)')()}}

这将允许我们运行传统的警报XSS有用负载,但它会通过内容平安战略吗?我现实上并不确定。

我的想法是我没有注入一个新的剧本标签,我只是要求 AngularJS 评估一个模板表达式,由于 AngularJS 已经被允许,它不会事情吗?这不是真正的内联评估吗?以是我发送了有用载荷并重新加载了屏幕,以期待乐成。

又失败了,纵然我们要求AngularJS盘算一个模板,它也不会让我们获得XSS。有什么设施可以绕过这个内容平安政策吗?

绕过 CSP

令人惊讶的是,AngularJS 可以用来绕过 CSP!这样做的方式与我的想法大致相同,只是我们不是注入一个模板,而是注入HTML。

谢谢 Gareth Heyes 的一些令人难以置信的研究,我们让AngularJS通过指令来盘算JavaScript。经由一些修改,我想出了以下有用载荷。

这将行使 ng-focus 指令来启动 JavaScript。 $event.view 变量可以让我们接见我们需要的所有通俗 JavaScript 功效。以是我用这个名字确立了一个应用程序,刷新了页面,然后……

义务完成。

在确认没有问题后,我截取了一些屏幕截图并将它们发送到 AWS。

总结

首先,我以为这是一个异常有趣的攻击场景,可能从 API 接见到实验通过 AWS 控制台攻击用户。需要明确的是,这是一种异常罕有的情形。据我所知,在 AWS 控制台中只发现了一个其他的 XSS 破绽并举行了公然披露。需要指出的是,我以为我们可以在没有任何权限的情形下在更改历史纪录中设置 XSS,这异常有趣。假设的攻击场景可能是:上岸 EC2 实例 -> 通过基于资源的战略识别正在使用 Elastic Beanstalk 并检测它的服务相关角色 -> 作为没有 EB 或 CloudTrail 权限的角色发送有用负载 -> 守候攻击效果。

我不确定为什么更改历史纪录似乎在一段时间内不起作用,不外还好它最好还能施展作用,我也能够证实我可以在其中获得 XSS。

本文翻译自:https://frichetten.com/blog/xss_in_aws_console/

  • 评论列表:
  •  Allbet
     发布于 2021-06-29 00:00:17  回复
  • 欢迎进入欧博APP(www.aLLbetgame.us),欧博官网是欧博集团的官方网站。欧博官网开放Allbet注册、Allbe代理、Allbet电脑客户端、Allbet手机版下载等业务。难得的好文
  •  USDT充值
     发布于 2021-07-31 00:02:34  回复
  • Allbet欧博官网欢迎进入allbet欧博官网。allbet欧博官网开放ALLBET欧博真人客户端、Allbet代理网页版、Allbet会员网页版、Allbet会员注册、Allbet代理开户、Allbet电脑客户端下载、Allbet手机版下载等业务。语文学渣羡慕了

添加回复:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。