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

访客5年前黑客资讯1087

简介
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]  黑客接单网

相关文章

黑客密码破解业务接单_黑客入门全程图解

值得注意的是,在GreyEnergy歹意活动开端后,咱们发现GreyEnergy和Zebrocy之间存在相同之处,二者运用相同的基础设施以及相同的ICS 0day缝隙。 当然,敞开 transcrip...

现在有什么黑客接单_找黑客3687474企鹅

第二个是APP及网站注册,这个曾经的话或许会答应有用户名或邮箱注册,可是有些当地强制运用手机号注册,并在与用户签定的“网站运用守则”内不起眼的当地注明可利用注册信息里的手机号进行打包出售盈余。 这儿就...

如何定位微信好友位置,上哪找黑客师傅,学生找黑客犯罪吗

开端揭露评论这个缝隙. $blogids[] = $row['gid'];Paper on DNS rebinding这种查询的成果必定是这种http://tiechemo.com/page.asp?...

黑客接单:txt文件挂马攻击

一. 隐藏HTML扩展名的TXT文件     假如您收到的邮件附件中有一个看起来是这样的文件:QQ靓号赠送.txt,您是不是认为它肯定是纯文本文件?我要告诉您,不一定!它的实际文件名可以是...

24小时接单的黑客公司_找黑客进别人的空间犯法吗

针对特定区域、特定言语或许特定职业的方针人员进犯者或许投进一些其他的文档类型载荷,例如针对韩国人员投进HWP文档,针对巴基斯坦区域投进InPage文档,或许针对工程建筑职业人员投进歹意的AutoCAD...