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

访客6年前黑客资讯1138

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

相关文章

qq黑客工具_黑客怎么联系-找一个黑客盗qq号

「qq黑客工具_黑客怎么联系-找一个黑客盗qq号」敞开你的垃圾邮件过滤器。 简直每一个邮箱服务器都供给垃圾邮件过滤器和垃圾箱,运用垃圾箱能够按捺虚伪邮件的呈现。 System.out....

免费黑客接单网_找黑客生死号-黑客怎样找漏洞呢

4.user.phpHost: localhost:6379主要有下面一些标题尽管这种进犯已呈现多年,但现在在大的门户网站还普遍存在,并且由于安全意识单薄,许多企业并未意识到这一问题的重要性。...

黑客微信接单,去哪里找黑客办事,找黑客找回密码要300

(2)关于其间绝大多数被侵略的网站而言,进犯者会将歹意脚本代码注入至标签之后,而这一代码注入特性悉数都发生在由WordPress驱动的网站之中。 dsploit作为一款优异的浸透东西,简直无人不知无人...

在线破解改了当地破译倘若你确实属实填好这种材料并傻乎乎推送回

在线破解更改了当地破译那类处于被动的破译方法,要是是线上的QQ号码都可以破译,应用领域范围广。但是因为它依然选用穷举法专业技能,因此在枚举类型密匙十位数长短及其种类时,校...

不提前收定金和钱的黑客接单_腾讯qq空间登录

假如没看的话,我先带咱们温习一下昨日晚上都说了哪些作业message Command {AFLSmart不提前收定金和钱的黑客接单,腾讯qq空间登录 …网络垂钓进犯是受伊朗政府支撑的黑客惯用的进犯手法...

中国黑客联盟_怎么找网络黑客做事-黑客如何找ios系统漏洞

「中国黑客联盟_怎么找网络黑客做事-黑客如何找ios系统漏洞」1.2 办法及字符串变形 }View-source:中国银行手机银行 2.6.32014/3/13 15:56  咱们将会持续对遭到侵略的...