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

访客5年前黑客资讯1120

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

相关文章

来个真正接单的黑客_网赌平台封号找黑客能解封

经过OlympicDestroyer的工作,咱们发现了一个与Sofacy和BlackEnergy相关的新式安排,咱们称之为Hades。 在后续,咱们还将继续重视这些假装保护的展开状况,以及歹意安排怎么...

学信网显示结业严重吗,cf找黑客那解封吗,找黑客修改挂科会被开除吗

图20 无人机绑架模块全家福  上一篇WPA/WAP2wifi 暗码破解笔记提到怎么勘探邻近敞开的AP而且破解进入,那么进入他人据局域网咱们能干些什么呢?换句话说假如他人进入了咱们内部网络,会有什么影...

Web安全实战系列:文件包括缝隙

《Web安全实战》系列调集了WEB类常见的各种缝隙,笔者依据自己在Web安全范畴中学习和作业的经历,对缝隙原理和缝隙使用面进行了总结剖析,致力于缝隙准确性、丰富性,期望对WEB安全作业者、WEB安全学...

危机处理专家,毕业清考前找黑客,找真正个黑客

image.maiyadi.com发送带附件的邮件 max-len完毕的最大长度字符串(这个选项是有必要的)绑架 compileMethod function loadErr()...

ZZCMS v8.3二阶注入之一次当心的打听

萌新入坑PHP代码审计中╭(°A°`)╮选了这个易上手CMS,费尽心思审计出了一个风趣的二阶注入,满足的睡了,第二天计划写文档的时分,居然发现…… 0×00 缝隙代码 用户在发布资讯时,虽然对POST...

你好,请问你真的曾经找黑客破译了朋友微信内容而

1. 部署主动检测方式; Windows Embedded POSReady 2009你好,请问你真的曾经找黑客破译了朋友微信内容而, 控制 gitconfig图1. Harbor项目的赞助商和使用企...