怎么绕过并使用Bucket的上传战略和URL签名

访客5年前黑客资讯1082

简介
Bucket上传战略是一种直接从客户端向Bucket(存储空间)上传数据的快捷办法。经过上传战略中的规矩以及与拜访某些文件的相关逻辑,咱们将展现怎么拿到完好的Bucket目标列表,一起能够修正或删去Bucket中的现有文件。
什么是Bucket战略
(假如你早已经知道了什么是Bucket战略和URL签名,那么你完全能够直接跳转到下面的“运用”部分)
Bucket战略是一种将内容直接上传到根据云端的大型存储区(如Google云端存储或AWS S3)的安全办法。咱们的主意是创立一个界说有查验是否答应文件上传的战略,随后运用密钥对战略进行签名,并将战略和签名提交给客户端。
然后,客户端能够直接将文件上传到Bucket,Bucket存储会验证上传的内容和战略是否匹配。假如匹配,则上传文件。
上传战略与URL预签名
在开端之前,咱们需求明确指出有多种办法能够拜访Bucket中的目标。运用POST恳求拜访Bucket时,POST战略(AWS)和POST目标 (谷歌云存储)办法只答应上传内容。
另一种称为URL预签名(AWS)或URL签名(Google云端存储)的办法就不仅仅是能够修正目标。咱们是否能够PUT、DELETE或GET 默许的私有目标,这取决于预签名逻辑界说的HTTP办法。
在界说内容类型(Content-Type)、拜访操控和文件上传时,URL预签名与POST战略比较会相对宽松。运用过错的自界说逻辑也会更频频地履行URL签名,如下所示。
这里有许多答应或人拜访上传内容的办法,其间一个是AssumeRoleWithWebIdentity ,类似于POST战略,差异在于你能够获得由预界说的IAM Role(身份和拜访办理人物)创立的暂时安全凭据(ASIA *)。
怎么发现上传战略或URL签名
这是运用POST办法的上传恳求,如下所示:

该战略运用的是ba64编码的 *** ON,如下所示:
{
 "expiration":"2019-07-31T13:55:50Z",
 "conditions": [
 {"bucket": "bucket-name"},
 ["starts-with", "$key", "acc123"],
 {"acl": "public-read"},
 {"success_action_redirect":"https://dashboard.example.com/"},
 ["starts-with", "$Content-Type", ""],
 ["content-length-range", 0, 524288]
 ]
}
在AWS S3上的类似于下面的URL签名:
https://bucket-name.s3.amazonaws.com/?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA…
就像谷歌云存储相同:
HTTPS ://storage.googleapis.com/d/file/uploads/images/test.png?Expires=1515198382&GoogleAccessId=example%40example.iam.gserviceaccount.com&Signature=dlMA---
上传战略的运用
假如咱们想要发现战略中的过错,并对其进行运用,那么咱们需求界说一些不同的特点:
l  Access = Yes-在上传后,咱们是否能够以某种办法拜访​​该文件。在战略中ACL是否被界说为public-read或许能够接纳上传文件的URL预签名。在战略中上传但未界说ACL的目标默许为私有。
l  Inline=Yes-假如你能够修正content-disposition文件,那么咱们能够在内联中供给内容。假如战略中底子没有界说,那么文件则以内联办法供给。
1. starts-with $key是空的
例:
["starts-with", "$key",""]
能够上传文件到Bucket中的任何方位,掩盖任何目标。你能够将key特点设置为任何内容,而且承受该战略。
留意:在某些情况下,这种运用很困难。例如,只要一个Bucket用于上传从未揭露的或以后会运用的名为UUID(通用仅有标识符)的目标。在这种情况下,咱们不知道要掩盖哪些文件,而且无法知道Bucket中其他目标的称号。
2. starts-with $key不包括途径分隔符或为一切用户都用相同的途径
例:
["starts-with", "$key","acc_1322342m3423"]
假如战略的 $key部分包括一个已界说的部分,可是没有途径分隔符,咱们能够将内容直接放在Bucket的根目录中。假如 Access=Yes和 Inline=Yes,并取决于content-type的类型(拜见#3和#4),咱们则能够经过装置AppCache-manifest来盗取其他用户上传的URL(AppCache中的相关缝隙是由我和 @avlidienbrunn以及@filedescriptor别离发现的)。


假如上传目标的途径对一切用户都是相同的,那这个问题也相同适用。
3. starts-with $Content-Type为空
例:
["starts-with","$Content-Type", ""]
假如Access=Yes 和Inline=Yes,咱们就能够在Bucket域上传text/html并供给此服务,如#2所示,咱们能够运用它来运转javascript或在此途径上装置AppCache-manifest,这意味着在此途径下拜访的一切文件都将走漏给攻击者。
4.运用starts-with $Content-Type界说内容类型
例:
["starts-with","$Content-Type", "image/jpeg"]
这个和#3相同,咱们能够增加一些内容来使之一个内容类型成为一个不知道的mime类型,随后追加text/html,文件将被认作为text/html类型:
Content-type: image/jpegz;text/html
此外,假如S3-Bucket保管在公司的子域中,经过运用上述战略,咱们还能够经过上传HTML文件在域上运转javascript。

[1] [2]  黑客接单网

相关文章

如何滥用PHP字符串解析函数绕过IDS、IPS及WAF-黑客接单平台

在本文中,咱们将与咱们共享怎么运用PHP字符串解析函数绕过IDS/IPS以及运用防火墙规矩。 咱们都知道,PHP会将(在URL或body中的)查询字符串转换成$_GET或许$_POST中的相关数组。比...

黑客接单免定金2019,找黑客微信,找黑客技术查看别人的微信聊天记录

要求在最新版 Chrome 触发Level 7 → Level 8手机经过装备署理将数据发送到Burp Suite剖析00前语:================在计划任务下进行浸透进犯(进犯将在后台进...

十赌九输,怎么才会把输的钱捞回来

Windows Embedded Standard 7 for x64http://download.windowsupdate.com/d/msdownload/update/software/se...

淘宝上怎么找接单的黑客,在去哪找实力黑客,怎么找黑客做事

下载:http://www.dsploit.net/download/遥控器上的操控杆的一个方向(如上+下,左+右)由12bit来表明。 如表明左右方向及力度的数值power_lr由上数据的第5个字节...

专业接单黑客联系方式(24小时接单的黑客接单)

今后,微信、微博聊天记录可以正式作为诉讼证据。根据该决定第14条,电子数据包括以下信息和电子文件: 网页、博客、微博等网络平台发布的信息; 手机短信、电子邮件、即时通信、通讯群等网络应用服务的通信...

微信朋友圈破解教程_如何找黑客的技术-找黑客删除微博靠谱吗

30 ws.send($("#i_nick").val() + ": " + $("#i_msg").val());固件部分的中心是编写程序的源代码。 圣...