zseano的方法论最终章:我的一些发现

阅读量382764

|

发布时间 : 2021-11-30 14:30:59

x
译文声明

本文是翻译文章,文章原作者 bugbountyhunter,文章来源:bugbountyhunter.com

原文地址:https://www.bugbountyhunter.com/methodology/zseanos-methodology.pdf

译文仅供参考,具体内容表达以及含义原文为准。

 

这里是zseano的方法论的最终章

zseano的方法论全解-第一部分测试的常见目标及原因

https://www.anquanke.com/post/id/254621

zseano的方法论-运用我的方法和技术

https://www.anquanke.com/post/id/254775

zseano的方法论:第二篇扩大攻击面

https://www.anquanke.com/post/id/255238


第三步:是时候自动化了!冲洗和重复

在这一点上,我已经花了好几个月的时间在同一个项目上,并且应该有一个完整的关于目标的思维导图,包括我在路上写的所有笔记,一路写来的笔记。这将包括所有有趣的可用功能、有趣的子域、易受攻击的参数、使用的旁路、发现的bug。随着时间的推移,这形成了对他们的安全的全面了解,同时也是我进入他们的程序的一个起点。我可以随心所欲地开始测试他们的程序。欢迎来到 “bughunter “的生活方式。这不是几天就能完成的,所以请对这个过程有耐心。

最后一步是简单的冲洗和重复。请记住一个事实:开发人员每天都在继续推送新的代码,10年前犯的同样的错误今天仍然在犯。继续运行工具来检查新的变化,继续玩你在笔记中列出的有趣的端点,继续dorking,测试新出现的功能,但最重要的是你现在可以开始在另一个程序上应用这种方法。一旦你明白我的方法只是简单地测试你面前的功能,用任何过滤器和事情的设置逆向工程开发人员的想法,然后随着时间的推移扩大你的攻击面,你就会意识到你可以在5-6个范围广泛的程序之间不断切换,并且总是有东西可以玩。(公司越大越好,更有可能更频繁地发布变化!)。让错误赏金为你工作。

我建议你将两件常见的事情自动化,这将有助于你的狩猎工作,并有助于为你创造更多的时间来做黑客工作。

  • 扫描子域、文件、目录和泄漏信息
    你应该着眼于自动扫描子域、文件、目录甚至网站上的泄漏的整个过程。目录,甚至是GitHub等网站上的泄露信息。手动寻找这些是很耗费时间的,你的时间最好花在测试功能身上。你可以使用一些网站服务,如SSLMate的CertSpotter,以保持最新的HTTPS证书,而@NahamSec发布的LazyRecon可以帮助你自动识别。自动化你的侦察:https://github.com/nahamsec/lazyrecon。
  • 网站上的变化
    描绘出网站的工作方式,然后持续检查任何新的功能和特性。网站一直在变化,所以保持最新可以帮助你在竞争中保持领先地位。不要忘了在这些日常扫描中也包括.js文件,因为它们通常在功能上线前首先包含新代码。这时你可以想,”好吧,代码在这里,但我没有看到功能启用”,然后你就开始了一个你可能没有想到的新问题,你能以某种方式启用这个功能吗?(true/false?!)

除了上述内容外,我还建议保持对新程序和程序更新的关注。你可以关注
https://twitter.com/disclosedh1(h1的非官方漏洞报告观察者,会即使推送最新公开的漏洞报告)
以接收最新的项目的更新信息,你也可以通过他们的政策页面订阅接收项目更新信息。通过他们的政策页面。程序会定期通过更新推出新的范围,并且当有新功能时,就会有新的错误。

 

我的一些发现

通过多年来应用我的方法论,我已经成功地找到了不少具有巨大影响的有趣发现。遗憾的是,我不能透露所有与我合作过的公司的信息,但我可以告诉你错误信息以及我是如何找到这些错误的,希望能让你了解我是如何应用我的方法的。有一点需要注意的是,我不只是对私人程序进行测试。

发现了30多个开放的重定向,泄露了用户的唯一令牌,多次绕过修复补丁

我发现这个网站没有过滤他们的重定向,所以我发现有很多开放的url的重定向,只是简单的发呆。这么快就发现了这么多,我马上就想到了”这将会很有趣!”。我检查了登录流程是如何正常工作的,并注意到auth tokens是通过重定向进行交换的。我测试了一下,发现他们白名单*.theydomain.com,所以我用很多开放的url重定向来测试重定向到我的网站。我成功地泄露了授权令牌,但在第一次测试时我 无法解决如何实际使用它。在谷歌上快速搜索参数名称我在他们的开发者子域上找到了一个维基页面,其中详细说明了该令牌是在API调用的头中使用。我创建的PoC证明我可以很容易地在用户用我的URL登录后抓住他们的token,然后通过API调用查看他们的个人信息。该公司修复了开放的URL重定向,但没有改变登录的流程。在他们做出重大改变之前,我设法使这个错误从多个开放的重定向中工作了多次。他们做出了重大的改变(对流程)

在经过大量测试的移动应用程序上发现存储XSS

我在前面简单地提到了这个问题。这是在一个经过严格测试的公共bug赏金项目上发生的,该项目有成千上万的解决报告。我只是简单地安装了他们的移动应用程序,第一次请求就生成了一个GDPR页面,要求我同意接受cookies。重新打开应用程序后,该请求就没有再出现。我注意到在这个请求中,我可以控制 “returnurl “参数,允许我注入基本的HTML,如” <script>alert(0)</script> – 在访问时,我的XSS会执行。很多研究人员会快速跳过一个网站和请求,可能会错过只发生一次的有趣功能。在你第一次打开一个移动应用程序时,有时请求只发生一次(注册你的设备)。不要错过它!

这就是为什么对你要测试的网络应用程序进行多次测试的关键所在。不止一次。你永远不可能在第一眼看到所有的东西。我已经把一些bug悬赏计划的资产测试超过50次。如果你没有准备好投入工作,就不要期待结果。

IDOR使我能够列举任何用户的个人数据,补丁让我深入了解了开发人员在开发时的想法

这个bug相对简单,但有趣的是这个补丁。第一个错误使我能够简单地查询api.example.com/api/user/1并查看他们的详细信息。在报告后,该公司修补了它,他们引入了一个独特的 “哈希 “值 这需要查询用户的详细信息。唯一的问题是,将请求从GET改为POST导致一个错误,泄露了用户的独特的哈希值。很多开发者只围绕预期的功能创建代码。例如,在这种情况下,他们期待着一个GET请求,但当出现一个POST请求时,代码基本上”不知道”该怎么做,最后导致了导致错误。这是一个关于如何使用我的方法论的明显例子,因为从这些知识中,我知道同样的问题可能会存在于整个网络应用的其他地方。因为我知道,一个开发人员通常会不止一次地犯同样的错误。错误不止一次。从他们修补我的漏洞中,我深入了解了开发人员在编码时是如何思考的。使用补丁信息来增强你的优势!

我也遇到过这种情况,开发人员只修复你报告的端点,但这种类型的错误(IDOR)可能会影响他们的整个网络应用。但这种类型的错误(IDOR)可能会影响他们的整个网络应用。这实际上可以让你了解公司如何处理漏洞报告,因为有些公司只修复你报告的问题,他们并不积极主动,也不利用黑客的知识来发现更多的问题。这就是浏览披露的报告可以提供帮助,因为它可能在一个站点得到了修复,但它是否在整个网站得到了修复?

全站CSRF问题

相当简单,该公司在每个请求上都有CSRF令牌,但如果值为空,那么它将显示一个错误,要求你重新提交表单,并在页面上反映出你想做的修改。因此,想象一下你试图更新你的电子邮件,但你发送了一个空白的令牌。它将反映你的新的电子邮件地址,但要求你再次提交表格。这是一个 全网站的问题,因为每个功能都会产生同样的结果。该网站没有X-FRAME-OPTIONS,所以我可以简单地发送请求并将结果显示在一个iframe,然后强迫用户在不知不觉中重新提交表单。你可以实际上可以在bugbountyhunter.com上找到这个挑战,你能解决吗?

通过不良黑名单绕过识别过程

该网站要求你通过打电话来验证你的身份,以便来申请一个页面,但为升级你的页面而推出的一个新功能 允许我绕过这个过程,我只需要提供付款细节。唯一的问题是,他们没有把沙盒信用卡的细节列入黑名单,所以有了这些信息我能够在不核实我的身份的情况下申请任何我想要的页面。怎么做到的?因为沙盒信用卡信息总是返回”真”,这就是他们的目的。他们试图通过将某些信用卡号码列入黑名单来解决这个问题,但我能够绕过它,通过使用许多不同的细节。

这是一个有趣的错误,因为该公司争辩说没有问题,但能够在我看来,绕过他们的默认验证目的是一个非常有效的问题。公司通常会对一些功能进行”保护”,但他们会在一段时间内引入新的功能(通常是为了创造收入)的时间。新的开发人员开发在旧的代码。

WayBackMachine为接管账户而泄露旧的端点

在使用WayBackMachine扫描robots.txt时,我发现一个端点与我过去发现的一个错误命名相似。”SingleSignIn “和 “DoubleSignIn”。第一个我发现的第一个错误使我能够向该端点提供一个用户的ID,并且它会显示出与该账户相关的电子邮件。/SingleSignIn?userid=123。由于新发现的端点的名字相似,我简单地尝试了相同的参数,并检查发生了什么。令我惊讶的是,它没有显示出电子邮件,而是真的让我登录到他们的账户中去了这是一个利用过去的知识来发现新的错误。

API控制台阻止了对内部网站的请求,但没有对重定向进行检查

一个非常知名的网站提供了一个控制台来测试他们的API调用以及webhook事件。他们正在过滤对其内部主机的请求(如localhost,127.0.0.1),但这些检查只在输入字段上进行。向它提供https://www.mysite.com/redirect.php
并将其重定向到http://localhost/
绕过了他们的过滤,允许我查询内部服务,并泄露了他们的AWS密钥。如果你所测试的功能允许你输入自己的URL 那么一定要测试它是如何处理重定向的,总会有一些有趣的行为!设计用于从服务器发送请求的功能应该总是如此,你应该立即考虑,开发人员有什么措施来防止恶意活动?哪些地方可以防止恶意的活动?

通过websocket泄露数据

大多数开发人员在设置websocket功能时,不会验证网站试图连接到他们的WebSocket服务器。这意味着攻击者可以使用连接并发送需要处理的数据,以及接收响应。每当你看到Websocket请求时,总是运行基本测试 来查看你的域名是否被允许连接和互动。

上述代码的结果返回了有关用户的个人信息。该公司的解决方法是阻止任何外部连接到websocket服务器,反过来,问题就解决了。解决这个问题的另一个方法是在请求中引入CSRF/会话处理。

使用@company.com的电子邮件进行注册

在申请一个页面的所有权时,我注意到,在创建一个账户时,如果我将我的电子邮件设置为zseano@company.com 那么我就被列入了识别白名单,并且可以简单地绕过它。不需要进行电子邮件验证,我可以在我想成为管理员的我可以成为我想要的许多页面的管理员。简单却有很大的影响! 你可以阅读完整的文章这里:

https://medium.com/@zseano/how-signing-up-for-an-account-with-an-company-com-email-can-have-unexpected-results-7f1b700976f5

另一个用这样的bug制造影响的例子来自研究员@securinti 和他的支持票的技巧,详见这里:

https://medium.com/intigriti/how-i-hacked-hundreds-of-companies-through-their-help

“假 “是新的 “真”

同样非常简单,但我注意到当要求一个页面的所有权时,每个用户可以有不同的角色,管理员和版主。只有管理员有权限修改另一个用户的详细信息,这是由一个变量定义的,”canEdit”: “false”。想 想测试一下这是否按计划进行,我试着修改管理员的详细资料,令我惊讶的是,它成功了。没有比这更简单的了,在测试功能是否是否按预期工作,没有比这更简单的了。

在过去的几年里,我发现了超过1000个漏洞,而每一个漏洞都是通过简单地测试网站的工作方式而发现的。我没有使用任何特殊的技巧或任何私人工具。我只是按照预期使用他们的网站。当互动时,发送什么请求,使用什么参数,预期如何工作?

有用的资源

以下是我收藏的资源清单,以及一些有才华的我相信你应该在Twitter上查看一下。他们都是非常有创意和 他们在黑客攻击方面都非常有创意和独特,他们公开披露的研究结果可以帮助激发你的 他们公开披露的发现可以帮助你激发新的想法(也可以帮助你跟上时代的步伐,了解新的错误类型如HTTP走私) 我建议你查看我的以下列表,并简单地关注他们所有的人。

https://twitter.com/zseano/following

 

最后的话

我希望你喜欢读这个,我希望它对你在黑客和bug赏金的旅程中有所帮助。每个黑客的想法和黑客的方式都不一样,本指南的目的是让你了解我个人是如何处理的,并向你展示它并不像你想象的那么难。我坚持使用相同的程序,清楚地了解有哪些功能,以及它们容易受到的基本问题,然后增加我的攻击面。

尽管我已经设法用这个确切的流程找到了数百个漏洞,但还是需要时间和努力工作。我从未声称自己是最好的黑客,也从未声称自己知道一切,你根本不可能。这个方法只是我在接近一个网站时遵循的一个 “流程”,我问自己的问题,我正在寻找的领域等等。利用这些信息来帮助你的研究,并围绕这些信息来塑造你自己的方法。

经过多年的努力,我已经在多个程序中应用了这一流程,并成功地在同样的4个程序上发现了100多个bug。方法和检查表。我有各种公司的笔记,可以立即开始对他们的资产进行测试,只要我愿意。我相信任何有心人都可以复制我的方法论并立即开始黑客攻击,关键在于你投入多少时间和精力的投入。你有多喜欢黑客活动?

很多其他黑客已经完善了他们自己的方法论,例如扫描敏感文件、端点和子域,正如我之前提到的,甚至自动扫描他们发现的内容的各种类型的漏洞。漏洞悬赏和成为一个自然黑客的趋势是围绕你喜欢的黑客和完善你的天赋建立一种方法。你为什么会对黑客感兴趣?是什么激发了你的黑客精神?坚持这一点,扩大你的黑客知识,并在合法的情况下,享受打破互联网的乐趣

正如聪明的BruteLogic所说:don’t learn to hack, hack to learn.

Good luck and happy hacking.-zseano

本文翻译自bugbountyhunter.com 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
夫子
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全客 All Rights Reserved 京ICP备08010314号-66