我非常看重透明度,特别是当涉及到漏洞赏金空间时。世界各地的漏洞赏金猎人正在提交一系列报告,其中发现的问题跨越了多个领域,通常利用了许多技术和方法。然而,如果你还不是一名活跃的虫子赏金猎人,对赏金计划的期望或将要支付的东西有很好的理解,那么与拥有这方面知识的人相比,你就有了一个重大的劣势。我希望通过这篇博客文章,我可以揭开错误赏金计划所支付的那种问题的神秘面纱。
我在这个系列中写的最后一篇博客是大约四年前,120天,120个bug。在过去的四年里,发生了很多事情。我搬到欧洲住了六个月,两次搬到澳大利亚的州际公路,我赢得了一次现场黑客活动,我与人共同创立了一家公司,并与我认为是家人的团队一起帮助建立了一个攻击面管理平台。
与我之前的博客文章不同,我没有给自己设定一个目标,就是一天找到一个bug。取而代之的是,只要时间允许,我就参加错误赏金。有很多个月,我什么都没发现,这经常让我在评估自己作为黑客的价值时感到害怕。我也承认我可能是一名优秀的黑客,但总会有更好的黑客在那里,作为一个竞争能力极强的人,我已经接受了这一点。
在我看来,如果您在着手解决漏洞之前没有对基本的应用程序安全攻击和弱点有很好的了解,那么您就是在浪费时间。在这里练习和了解更多信息。
如果您正在寻找付费的、更广泛的资源,请查看并使用PentesterLab进行练习。
如此大量地参与漏洞奖励让我们在Assetnote了解到安全团队真正关心的是什么。这就是为什么当我们不断发现曝光时,我们能保持高信号的原因。
我写这篇博客的主要动机是教育大众关于漏洞赏金计划的用处。
例如,您是否知道可以将悬空的EC2 IP(指向不再归公司所有的EC2 IP的子域)作为错误报告提交,而无需阅读下面布丁中的证明?我是通过程序获得报酬的,所以很明显,他们重视这类信息。
下面是我在过去四年中的所有发现。我已经在必要的地方编辑了信息,但通过阅读标题,它应该会让您更好地理解我向节目报告的内容。
Spring调试端点暴露,导致Trace接管[密文]和amp;帐户时通过堆转储泄露所有机密。
Cisco IP Conference Station CP-7937G的管理面板在互联网上显示在[密文]IP范围内。
HTML注入、电子邮件回执的DOS和潜在的模板注入(通过";费用信息部分)。
能够通过[密文]将恶意附件(任何名称和任何内容类型)附加到[密文]支持人员。
[密文]的第三方子域劫持-EC2 IP不再由[密文]控制。
[BYPASS]通过[DIRECTED]的SSRF导致内部网络访问,能够读取内部JSON响应。
提取[已编辑]中所有线索的电子邮件、道布、完整地址、联邦税务ID和其他PII
通过API遍历Lead ID获取[密文]客户的邮箱、手机。
[密文][IDOR]-滥用[密文](回归?)通过回归/新的攻击向量访问所有账户。
[密文][IDOR]-滥用[密文](回归?)通过回归/新的攻击向量访问所有账户。
绕过[密文]上的身份验证绕过[密文](&;[密文]),允许完全访问匿名用户(包括私有流)。
关键:提高对所有[密文]管理员和员工的访问权限-获取所有电子邮件uuid和管理操作的访问权限。
[编辑]GitHub上泄露的Newsroom CMS(中国)源代码,带有微信的秘密-导致承包商机器上的RCE。
[密文]的外部可用MSSQL服务器显示大量数据+本地文件读取。
通过[密文]提取每个[密文]用户的详细信息(姓名、OpenID、unionid、手机、昵称、省、市、性别、bday)
关键:提高对所有[密文]管理员和员工的访问权限-获取所有电子邮件uuid和管理操作的访问权限。
[密文]存在多个问题(SSO绕过、员工凭据的Git回购和应用程序逻辑损坏)。
包含内部[编辑]应用程序源和数据库的高度敏感的repo';包含超过700封泄露的电子邮件。
能够获取任何[密文]用户的配置文件信息和元数据(电子邮件、付款、帐户类型、关联),前提是您知道他们的UUID。
[密文]上泄露的晋升代码(包括内部员工晋升代码)和员工UUID(包含付款配置文件)。
如果您知道任何[密文]用户的UUID,则能够获取他们的付款配置文件和敏感信息。
能够获取任何[密文]用户的配置文件信息和元数据(电子邮件、付款、帐户类型、关联),前提是您知道他们的UUID。
奖励管理面板无需身份验证即可访问,显示在[密文]上注册的大量用户
能够使用[密文]中的IDOR接收带有另一个[密文]商店标识的支持电话。
能够使用活动会话强行输入当前用户的密码,而不会将其锁定。
[编辑]俄罗斯Telegram bot API中存在多个漏洞,导致大量[编辑]数据暴露。
在[编辑]上发现的敏感API不需要身份验证,导致AWS云数据和用户泄露(2万名员工详细信息泄露)。
[编辑]俄罗斯Telegram bot API中存在多个漏洞,导致大量[编辑]数据暴露。
能够通过[密文]查询提取[密文]用户的所有UUID、电子邮件和名字。
能够通过[密文]查询提取[密文]用户的所有UUID、电子邮件和名字。
能够通过[密文]查询提取[密文]用户的所有UUID、电子邮件和名字
没有对[密文]实施速率限制,从而能够强行执行事件促销代码。
█。
深入了解[密文]故障转储报告工具-Persistent XSS+下载所有故障转储-[密文]。
[密文]和[密文]上的QA计算机上的Git存储库访问权限会暴露源代码和生产机密。
能够代表[密文]环境中的其他用户为[密文]提交错误。
WordPress数据库凭据泄露+在[密文]+MySQL根密码上查找并替换MySQL工具(searchreplacedb2.php)。
能够通过签名的Amazon请求将任意文件上传到[密文]S3存储桶[密文]。
没有对[密文]实施速率限制,从而能够强行执行事件促销代码
[密文]的第三方子域劫持-EC2 IP不再由[密文]控制。
[密文]上公开的git存储库显示所有应用程序源代码,包括1k用户明文密码+db信息。
关键-通过IDOR对[密文]执行管理操作-操作排行榜等。
公开读/写Amazon S3存储桶[密文],从而能够替换Android[密文]APK和子域接管。
[CRITICAL][密文]管理面板中的盲XSS导致完全访问管理面板。
服务器端请求伪造,允许联系ElasticSearch和转移实例等内部[编辑]AWS主机。
[密文]的第三方子域劫持-EC2 IP不再由[密文]控制。
我可以告诉你,在计算了上表中的所有支出后,准确的金额是1590天(4年零4个月)内支付的635,387.47美元。这不是我一直以来的赏金总额。这个数字只包括HackerOne平台,我提交的其他平台都没有被计算在这篇博客中。我将我的绝大多数错误报告给HackerOne上的程序。
我认识漏洞赏金社区的黑客,他们能够在几周或几个月内赚到数十万美元。遗憾的是,那不是我,但我确实觉得他们很鼓舞人心。正如我在这篇博客的前面所说,我接受了这样一个事实,即外面有更好的黑客,这些天来,我很自豪在写这篇文章的时候,我在HackerOne上排名第43位。
如果你把钱的数量除以天数,你很快就会计算出平均每天大约是400美元。我本来可以通过做一名日薪很高的顾问赚到这个或更多的钱,但不同的是,我是按照自己的条件赚到了全部63.5万英镑。
我在我想工作的时间和地点工作,如果我感觉不能胜任,我就有几个星期没有碰过赏金计划。
上表中至少有62个错误是自动化的直接结果。这占我在过去4年中报告的错误总数的18%。这是一个非常有趣的结论,向我证明了自动化是成功发现安全问题的一个方面。
这些公司付给我相当多的钱来封锁他们的攻击面。在赚取这笔钱并在此过程中学习新技术的同时,我们在Assetnote中构建了尽可能多的工作流、技术、工具和方法。我们发现,通过将漏洞赏金的成功转化为更易于理解的企业产品,我们能够成功地将自己确立为攻击面管理领域的关键参与者。
今天,我们拥有强大的客户群,他们使用我们的产品不仅在暴露发生时立即发现它们,而且更具创造性地减少他们的漏洞赏金支出,而不是为通过自动化发现的问题买单。Assetnote的平台在我过去四年的漏洞赏金搜索中,已经针对攻击面进行了彻底的测试,并且能够持续地发现安全漏洞。
大多数错误只能归因于自动资产发现,但仍然需要一些手动检查和利用。大规模的资产识别仍然是我成功的关键支柱。
就临界性而言,有24个SQLI,22个SSRF,20个IDOR,以及至少11个RCE。
我把时间主要集中在优步上,因为我更喜欢它,并重视在那里工作的团队-首先是与马修·布莱恩特(Matthew Bryant)、科林·格林(Collin Greene)合作,然后是在马特和科林离开后与乔尔·马戈利斯(Joel Margolis)合作。
在对优步进行黑客攻击的四年里,通过对他们的架构和开发实践有了深刻的理解,我能够在接近他们的资产时提出一种方法。这绝对是我成功的关键,我相信其他成功的漏洞赏金猎人都有他们处理程序的具体方式。每家公司在黑客攻击方面都是不同的。
在这四年中,我与之合作并从中学到了很多(没有特别的顺序):
我遇到一台主机,在攻击.NET应用程序时,使用我所有的技术,我能够发现一些严重的问题,但没有发现命令执行。当时,发布了关于如何通过ViewState参数、通过不安全的反序列化(如果您拥有machineKey)来实现RCE的研究。
我让Andre帮忙,他不仅能够成功地泄露machineKey,而且还是首批创建利用该漏洞的工具的人之一。
安德烈在CTF方面的丰富经验是我们这次合作成功的关键。
当我逆转Facebook在他们的一个公司域名下的攻击面上发布的一款供应商产品时,我向乔尔寻求帮助。
通过从Amazon的Marketplace启动一个AMI,然后在部署的实例上获得一个shell,我能够获得该产品的源代码。然而,当试图通过XSD调试一个棘手的潜在XXE时,我不能仅仅通过读取源代码来进一步调试。
Joel在Java方面的经验是我们在这里成功的关键。他反编译了JAR文件,创建了一个IntelliJ项目,并修复了所有错误。然后我们开始一步一步地调试。
看到乔尔解决了这个问题,我感到非常高兴,我期待着在未来与他合作。
纳菲-帮助我理解了对雅虎攻击面最好的攻击是坚持不懈。
我认识纳菲已经快十年了,我从他身上学到的最重要的一件事是,只要有足够的时间和精力,任何攻击面都可以被攻破。在漏洞赏金的早期,纳菲在雅虎赏金计划的排行榜上占据主导地位-正因为如此,他在大型攻击面方面拥有丰富的经验。
雅虎现在归Verizon所有,在互联网上部署了数量惊人的基础设施和资产。然而,攻击面上的噪音处理起来是荒谬的。
纳菲向我展示的是,只要有足够的毅力和时间,事情就会破裂,我们必须密切关注,才能利用这一点。
肖恩-我已经数不清我们一起拥有的东西有多少了。
每次我处于一个棘手的情况,由于技术复杂性或缺乏知识而难以利用问题时,Sean都是推动和帮助开发概念验证利用的人。
肖恩已经能够非常成功地将高风险的安全问题转化为自动化,这导致了我们一起披露的许多漏洞。
奥斯卡-当我在福克斯主教的时候,我和奥斯卡在赏金问题上进行了很多合作。
我在福克斯主教学校的时候,每天都和奥斯卡聊天。当它向我展示如何超级优化DNS暴力攻击的速度时,奥斯卡发挥了巨大的作用。
当我和他一起工作时,我发现他令人难以置信地兴奋,最重要的是,他是一个善良的人。当我在福克斯主教工作时,他为许多赏金的成功做出了贡献。
JavaScript源代码映射是更好地理解任何客户端应用程序内部的绝佳方法。现在我每次找到JavaScript文件都会查找源地图文件,这要归功于Huey。
在Uber上,我们使用了源地图文件来更好地理解Uber应用程序正在使用的GraphQL查询和API端点,以进一步利用它们。多亏了Huey,我对JavaScript有了更好的理解。
在最近的一次现场黑客活动中,我们拆解了名为PencilBlue的CMS,因为它正被一个特定的目标使用。我们一起进行了一次BLAST审核源代码,将彼此击败到应用程序源代码中的不同流,并在接近攻击面的速度上捆绑在一起。
在一次现场黑客活动中,我发现了通过谷歌缓存页面泄露的凭证,如密钥。一项以纯文本打印所有环境变量和机密的开发资产正通过ngrok进行代理,Google不仅成功地对其进行了索引,而且还将其缓存,所有机密都已就位。
在从缓存的副本中窃取了这些秘密之后,我请里斯帮助我证明其影响力。通过将我偷来的代币转换成无交互的账户接管,他确实做到了这一点。里斯也非常兴奋。他以几英里的优势赢得了现场黑客活动。
多年来,可能有更多的人与我共事,但我不能立即回忆起来。我想告诉你们的是,当涉及到缺陷方面的增长和成功时,协作是非常重要的。
另外,请不要只是让别人帮你破解一些东西。在上述所有案例中,协作之所以如此成功,是因为最初的分诊是由任何一方完成的。最初的立足点或概念总是出于信任而共享的,这随后导致了在这个问题上的实际合作。不要指望人们会在没有提供至少一半的利用链或想法的情况下为你利用东西。
正如我之前在本演示文稿中所谈到的,我的方法仍然围绕着识别属于互联网上某个组织的资产。
资产识别和内容发现的速度大大提高。这在一定程度上是因为安全场景发生了根本性的转变,从用Python编写工具,到用Golang或Rust编写它们,因为它们带来了速度优势。
我们在Assetnote也采用了这一趋势,我们平台的关键组件,如我们内部的DNS解析器,已经由Huey在Rust中重新编写和优化,以利用它带来的速度优势。
在分析攻击面时,我注意到一件事,那就是确保您的工具以突出关系的方式输出信息。例如,大多数快速DNS暴力工具的输出非常糟糕。以下是我更喜欢的DNS数据布局方式-tracertea与我分享了这些内容:
0.shop ify.com->;wc.shop ify.com。->;23.227.38.640.0.shop ify.com->;wc.shop ify.com。->;23.227.38.640.0.shop ify.com->;wc.shop ify.com。->;23.227.38.640.0.0.shop ify.com->;wc.shop ify.com。->;23.227.38.640.0.0.0.shop ify.com->;wc.shop ify.com。->;23.227.38.640.0.0.0.0.shop ify.com->;wc.shop ify.com。->;23.227.38.640.0.0.0.0.0.shop ify.com->;wc.shop ify.com。->;23.227.38.640.0.0.0.0.0.shop ify.com->;wc.shop ify.com。->;23.227.38.64
当你同时查看数以千计的资产时,你不知道这种优化能带来多大的不同。在分析这些DNS数据时,我可以立即认出源和目标之间的关系。
令人惊讶的是,如此简单的东西对我产生了如此深远的影响,但在显示内容发现结果时,颜色编码也是如此。大多数工具在这方面仍然缺乏,任何花时间梳理数千个内容发现结果的人都会告诉您,这项任务很快就会变得很累。最终,我把时间花在了大海捞针上,而颜色让这件事变得容易得多。
说到方法论,对我影响最深的程序是优步,因为攻击面在不断变化。
在这四年中,优步改变了他们开发和部署软件的方式。跟上这一点并不断反思用来穿透攻击面的方法是极其重要的。特别是对大型攻击面的持续评估,对互联网上的资产进行持续评估是非常有效的。
当我第一次开始侵入优步时,我会看到Redis和HAProxy(管理面板)等服务直接暴露在互联网上。我当时认为这是一个不成熟的攻击面,因为发现这些安全错误配置是微不足道的。但是这些年来,哇,它们已经进化了。
如今,在优步的核心攻击面上,你根本找不到像Redis这样暴露的服务,这直接反映了他们在应用安全方面的内部流程和做法的成熟,从更广泛的角度来看,也就是他们的整个攻击面。
取而代之的是,优步的所有内部和敏感资产都被路由到DNS级别的OneLogin。曾经有过敏感资产漏洞百出而没有OneLogin保护它们的情况,但这也是持续监控攻击面如此重要的原因。
谁知道呢?有人可能会在短时间内意外禁用保护其资产的OneLogin,或启动不强制执行OneLogin的敏感资产。可能是因为他们试图测试某些更改
.