Web Hacking 101 中文版 九、应用逻辑漏洞(二)

4. HackerOne 信号操作

难度:低

URL:hackerone.com/reports/XXXXX

报告链接:https://hackerone.com/reports/106305

报告日期:2015.12.21

奖金:$500

描述:

在 2015 年年末,HackerOne 向站点进入了新的功能,叫做信号。本质上,在这些报告关闭之后,它有助于识别黑客的之前漏洞报告的有效性。重要的是要注意,用户可以关闭它们在 HackerOn 上的报告,这本应该对他们的声誉和信号功能毫无影响。

所以,你可以猜到,在测试该功能的时候,一个黑客发现了这个功能的不合理实现,并且允许黑客向任何团队创建报告,自己关闭报告,并从中受益。

这就是这里的情况了。

重要结论

通过一个简短的描述,这里的结论不可能全部覆盖。一定要留意新的功能!当站点实现了新的功能时,它对于黑客就像鲜肉一样。新的功能展示了测试新代码和搜索漏洞的机会。这就和 Shopify 和 Twitter 的 CSRF,以及 Facebook 的 XSS 漏洞一样。为了最大利用它们,使你自己熟悉公司,并且订阅公司的博客是个好主意,以便你在一些东西发布之后能够收到提醒。之后测试它们。

5. Shopify S3 Bucket 开放

难度:中

URL:cdn.shopify.com/assets

报告链接:https://hackerone.com/reports/106305

报告日期:2015.11.9

奖金:$1000

描述:

Amazon 简易存储 S3,是一个服务,允许用户在 Amazon 的云服务器上储存和托管文件。Shopify 和许多站点都是用 S3 来储存和托管静态内容,例如图片。

Amazon Web 服务的整个套件,AWS,是非常健壮的,并包含权限管理系统,允许管理员为每个服务定义权限,包含 S3。许可包含创建 S3 Bucket 的功能(Bucket 就像储存器的文件夹),读取和写入 Bucket ,以及其他。

根据披露,Shopify 没有合理配置它们的 S3 Bucket 权限,并且无意中允许任何认证过的 AWS 用户读取或写入它们的 Bucket。这显然是由问题的,因为你至少不希望恶意的黑帽子使用你的 S3 Bucket 来储存和托管文件。

不幸的是,这个问题的细节没有暴露,但是可能使用 AWS CLI 来发现,这是一个工具,允许你和 AWS 服务在你的共领航上交互。虽然你需要一个 AWS 账户来做这个事情,创建账户实际上也是免费的,因为你不需要任何服务。因此,使用 CLI 你就可以在 AWS 上认证你自己,并且随后测试是否可以访问(这也是我发现 HackerOne Bucket 的方式,它在下面列出)。

重要结论

当你侦查一个潜在的目标时,确保注意到所有不同的工具,包含 Web 服务,它们明显可以使用。每个服务或软件,OS,以及其他。你可以寻找或发现新的攻击向量。此外,使你自己熟悉流行的 Web 工具,例如 AWS S3,Zendesk,Rails,以及其他是个好主意。许多站点都使用它们。

6. HackerOne S3 Bucket 开放

难度:中

URL:[REDACTED].s3.amazonaws.com

报告链接:https://hackerone.com/reports/128088

报告日期:2016.4.3

奖金:$2500

描述:

我们打算讲一些有些不同的东西。这是一个漏洞,我实际上发现了他,并且和上面描述的 Shopify 的问题有些不同,所以我打算详细分享关于我如何发现他的任何事情。

所以,一开始,上面描述的漏洞就是,一个 Bucket 公开链接到了 Shopify。意思是,当你访问这个想点时,你会看到 AWS 服务的调用,所以黑客就知道 Bucket 指向哪里。但是我并没有 -- 我使用了一个很酷的脚本和一些工具来发现了 Bucket。

在 4 月 3 日的周末,我不知道为什么,但是我决定跳出思维定式,并尝试攻击 HackerOne。我一开始就玩了玩它们的站点,并且每次新漏洞发现时,都迫使我自己阅读信息披露,想了解为什么我错过了它。我想知道他们的 S3 Bucket 是否存在类似 Shopify 的漏洞。我也想知道,黑客如何访问了 Shopify 的 Bucket。我了解到它是通过 Amazon 命令行工具来访问的。

现在,通常我会使自己停下,因为 HackerOne 这个时候不可能还拥有漏洞。但是我突然有一个想法,它来源于我和 Ben Sadeghipour (@Nahamsec) 的访谈,就是不要怀疑自己,或者公司犯错的可能。

所以我在 Google 上搜索一些细节,并碰到了两个有意思的页面:

There’s a Hole in 1,951 Amazon S3 Buckets

S3 Bucket Finder

第一个是个有趣的文章,来自 Rapid7,它是个安全公司,这篇文章关于如何发现公开可写的 S3 Bucket ,并通过模糊测试,或者猜测 Bucket 名称来实现。

第二个是个很酷的工具,它接受一个单词列表,并调用 S3 来寻找 Bucket。但是,它没有自带列表。在 Rapid7 的文章中有一行关键字,“通过一个不同的列表来猜测名称,列表包含 1000 强公司的名称,以 .com, -backup, -media 排列。”

这就很有意思了。我很快为 HackerOne 创建了一列 Bucket 可能名称,像这样:

hackerone, hackerone.marketing, hackerone.attachments, hackerone.users, hackerone.files

这些都不是真正的 Bucket。它们来自于报告。所以我觉得我肯定能够发现它。我将其留作一个挑战。

现在,使用 Ruby 脚本,我开始调用那些 Bucket。事情刚开始并不是那么好,我发现了几个 Bucket 但是都拒绝访问。很不幸,所以我先离开,看看 NetFlix。

但是这个想法还在提醒着我,所以在我睡觉之前,我决定再次使用更多组合来执行脚本。我再次发现了大量的 Bucket,它们看起来是 HackerOne 的,但是所有都拒绝访问。我意识到,拒绝访问起码告诉我它们是存在的。

我打开了 Ruby 脚本,它在 Buckets调用了ls的等价函数。换句话说,我尝试观察它们是否公开可读的。我想知道它,以及它们是否公开可写的。

此外,现在 AWS 提供了命令行工具,aws-cli。我知道它,因为我之前用过,所以我在我的 VM 上快速执行sudo apt-get aws-cli,并准备好了。你可以在docs.aws.amazon.com/cli/latest/userguide/installing.html上找到这个东西的指南。

现在,命令awss3help会打开 S3 的帮助,并列出可用的命令。这些命令之一是mv,以aws s3 mv [FILE] [s3://BUCKET]的形式,所以我尝试:

touch test.txt 
aws s3 mv test.txt s3://hackerone.marketing

这是第一个 Bucket,我从中收到了拒绝访问,并在调用PutObject操作时,我收到了move failed: ./test.txt to s3://hackerone.marketing/test.txt A client error(Access Denied)

所以尝试下一个,aws s3 mv test.txt s3://hackerone.files,并且成功了。我收到了这个消息,move: ./test.txt to s3://hackerone.files/test.txt

真是神奇!现在我尝试删除文件:aws s3 rm s3://hackerone.files/test.txt,同样成功了。

但是现在我还是怀疑自己。我快速登出了 HackerOne 来报告。并且在我键入时,我意识到我并没有实际确认 Bucket 的所有权。AWS 允许任何人在全局名字空间下创建任何 Bucket。意思是,你,或者读者都可能实际拥有我在测试的 Bucket。

我不确定是否应该不验证就报告。我搜索了 Google 来看看我是否可以找到任何 Bucket 的引用。我没有找到什么东西。我离开了电脑,来理清头绪。我意识到,最坏的事情就是我得到了另一个无效报告,以及贡献 -5。另一方面,我知道这至少值 $500,基于 Shopify 的漏洞也可能是 $1000。

我按下了提交,并去睡觉了。当我醒来的时候,HackerOne 回复了恭喜,并说它们已经修复了它和一些其他的存在漏洞的 Bucket。成功了!并且按照它们的条款,当他们授予奖励的时候,它们会考虑潜在的安全性,包括我没有发现但存在漏洞的其它 Bucket。

重要结论

有多个重要结论:

  1. 不要低估你的能力,以及开发者犯错的可能性。HackerOne 是个优秀的团队,拥有优秀的安全研究员。但是人们都会犯错。挑战你的假设吧。
  1. 不要在首次尝试之后就放弃。当我发现它的时候,浏览器每个 Bucket 都不可用,并且我几乎离开了。但是之后我尝试写入文件,它成功了。
  1. 所有的东西都在于只是。如果你知道存在了哪种漏洞,你就知道了要寻找以及测试什么。读这本书就是一个良好的开始。
  1. 我之前说过,又再说一遍,一个攻击面要好于站点,它也是公司所使用的的服务。要跳出思维定式。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容