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

简介: 4. HackerOne 信号操作难度:低URL:hackerone.com/reports/XXXXX报告链接:https://hackerone.com/reports/106305报告日期:2015.12.21奖金:$500描述:在 2015 年年末,HackerOne 向站点进入了新的功能,叫做信号。

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。另一方面,我知道这至少值 500Shopify1000。

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

重要结论

有多个重要结论:

  1. 不要低估你的能力,以及开发者犯错的可能性。HackerOne 是个优秀的团队,拥有优秀的安全研究员。但是人们都会犯错。挑战你的假设吧。

  2. 不要在首次尝试之后就放弃。当我发现它的时候,浏览器每个 Bucket 都不可用,并且我几乎离开了。但是之后我尝试写入文件,它成功了。

  3. 所有的东西都在于只是。如果你知道存在了哪种漏洞,你就知道了要寻找以及测试什么。读这本书就是一个良好的开始。

  4. 我之前说过,又再说一遍,一个攻击面要好于站点,它也是公司所使用的的服务。要跳出思维定式。

相关文章
|
11月前
|
安全 测试技术 程序员
web渗透-文件包含漏洞
文件包含漏洞源于程序动态包含文件时未严格校验用户输入,导致可加载恶意文件。分为本地和远程包含,常见于PHP,利用伪协议、日志或session文件可实现代码执行,需通过合理过滤和配置防范。
1461 79
web渗透-文件包含漏洞
|
11月前
|
存储 安全 前端开发
Web渗透-文件上传漏洞-上篇
文件上传漏洞常见于Web应用,因类型限制不严可致恶意文件执行。本文介绍前端检测、MIME类型、黑名单、.htaccess、空格、双写等多种绕过方式,并结合upload-labs靶场演示利用方法,提升安全防护认知。
3169 1
Web渗透-文件上传漏洞-上篇
|
11月前
|
安全 中间件 应用服务中间件
WEB渗透-文件上传漏洞-下篇
本文详解文件上传安全漏洞,涵盖白名单绕过(如00截断、条件竞争)、图片木马制作与利用、以及IIS、Apache、Nginx等常见解析漏洞原理与防御。结合实战案例,深入剖析攻击手法与修复方案。
849 1
|
11月前
|
存储 JavaScript 安全
Web渗透-XSS漏洞深入及xss-labs靶场实战
XSS(跨站脚本攻击)是常见的Web安全漏洞,通过在网页中注入恶意脚本,窃取用户信息或执行非法操作。本文介绍其原理、分类(反射型、存储型、DOM型)、测试方法及xss-labs靶场实战案例,帮助理解与防御XSS攻击。
3136 1
Web渗透-XSS漏洞深入及xss-labs靶场实战
|
11月前
|
安全 NoSQL Shell
web渗透-SSRF漏洞及discuz论坛网站测试
SSRF(服务器端请求伪造)是一种安全漏洞,攻击者可诱使服务端发起任意请求,进而探测或攻击内网系统。常用于端口扫描、访问内部服务、读取本地文件等。常见防御包括限制协议、域名和IP,但可通过302跳转、短地址等方式绕过。
562 1
web渗透-SSRF漏洞及discuz论坛网站测试
|
11月前
|
安全 程序员 数据库连接
web渗透-CSRF漏洞
CSRF(跨站请求伪造)是一种常见的Web安全漏洞,攻击者通过伪造用户请求,诱使其在已登录状态下执行非意愿操作。本文介绍CSRF原理、分类(站外与站内)、DVWA靶场搭建及防御措施,如同源策略与Token验证,提升安全防护意识。
742 0
web渗透-CSRF漏洞
|
11月前
|
安全 Linux PHP
Web渗透-命令执行漏洞-及常见靶场检测实战
命令执行漏洞(RCE)指应用程序调用系统命令时,用户可控制输入参数,导致恶意命令被拼接执行,从而危害系统安全。常见于PHP的system、exec等函数。攻击者可通过命令连接符在目标系统上执行任意命令,造成数据泄露或服务瘫痪。漏洞成因包括代码层过滤不严、第三方组件缺陷等。可通过参数过滤、最小权限运行等方式防御。本文还介绍了绕过方式、靶场测试及复现过程。
2070 0
|
10月前
|
算法 Java Go
【GoGin】(1)上手Go Gin 基于Go语言开发的Web框架,本文介绍了各种路由的配置信息;包含各场景下请求参数的基本传入接收
gin 框架中采用的路优酷是基于httprouter做的是一个高性能的 HTTP 请求路由器,适用于 Go 语言。它的设计目标是提供高效的路由匹配和低内存占用,特别适合需要高性能和简单路由的应用场景。
689 4
|
缓存 JavaScript 前端开发
鸿蒙5开发宝藏案例分享---Web开发优化案例分享
本文深入解读鸿蒙官方文档中的 `ArkWeb` 性能优化技巧,从预启动进程到预渲染,涵盖预下载、预连接、预取POST等八大优化策略。通过代码示例详解如何提升Web页面加载速度,助你打造流畅的HarmonyOS应用体验。内容实用,按需选用,让H5页面快到飞起!