一份漏洞赏金的新手指南

项目地址

https://github.com/bobby-lin/study-bug-bounty

漏洞赏金狩猎指南

心态

如果您开始寻找漏洞赏金,您需要知道学习漏洞搜寻技巧需要时间。你需要有耐心和决心继续狩猎,即使你可能不会很快看到成功的结果。漏洞赏金领域拥挤且竞争激烈,因此您需要努力工作、奉献精神和横向思维才能坚持下去。打猎就是一直学习和表演菜鸟。每个人都从某个地方开始。

来自 Tommy (dawgyg) DeVoss:如果您有能力查看 Web 应用程序并想出破解该应用程序的方法,那么您可以尝试一下。对于某些人来说,这个过程的开始可能非常缓慢,而其他人会在错误开始后立即开始寻找错误。在进行漏洞赏金时要记住的一件非常重要的事情是,如果您需要更长的时间才能找到有效的漏洞等,不要感到沮丧/沮丧。并不是每个人每次坐下来破解时都会发现漏洞。几天、几周甚至几个月都找不到错误是很常见的。不要将自己的成功或失败与他人进行比较。因为和其他任何事情一样,总会有人比你好,有人比你差。因此,设定自己的目标并努力实现这些目标非常重要。

奖励。所学到的课程和知识是您可以控制的唯一奖励。所以如果你是初学者,你应该把学习漏洞和利用它们的技术作为目标,而不是你应该赚多少钱。

责任。如果交易对手未同意,请勿披露问题。

学习

Web 应用程序基础知识。了解请求如何工作、HTTP 标头、JSON 请求、浏览器如何工作、它们如何通信以及如何将数据发送到服务器、DNS 等。https://developer.mozilla.org/en-US/docs/Web

常见范围漏洞。您需要了解常见的范围漏洞,例如远程代码执行 (RCE)、跨站请求伪造 (CSRF)、跨站脚本 (XSS)、注入(SQL、命令等)、点击劫持、开放重定向等。

阅读博客。从其他漏洞赏金猎人那里学习新技术,以便您可以在测试期间对其进行测试。

如果您是 Bug Bounty 计划的新手,您可能不相信自己能找到一个公共计划。这是很多黑客都在努力解决的问题。如果您还没有发现很多安全漏洞,那么练习夺旗 (CTF) 可能会有所收获。第一次利用某些东西是困难的,也是令人大开眼界的。如果您在查看真实目标时会应用相同的结构,那么请应用相同的结构,因为这可以帮助您打下坚实的基础,并帮助您成为出色的黑客。将漏洞赏金作为扩展知识的一种方式,而不是一种竞赛。编写简单的脚本并使用可用的工具来扩展扩展攻击面的过程 […] 了解 Web 应用程序并找出 Web 应用程序试图保护的资产。像 Web 应用程序的工程师一样思考。(乔伯特·艾玛,

学习如何制造然后打破。您首先需要知道 Web 或移动应用程序是如何开发的,这样您才能了解它是如何工作的,从而了解它是如何被分解的。这有利于你的长期发展,而不是成为一个只知道如何发送有效载荷(从互联网获得)的猎人。构建一些 Web 应用程序以了解 Web 架构的工作原理。

来自Spaceraccoon 的推文:坦率地说,我不会自动化。我尝试构建管道但失败了。只需学习基础知识,您就可以成功。查看@PortSwigger 的网络学院,观看@NahamSec 的直播,阅读@Hacker0x01 披露的内容。并了解如何构建您正在破解的内容。

培训平台

  • 漏洞赏金猎人
    • 模拟不透明度:该平台模拟更真实的错误搜索体验,您需要探索和理解每个功能以查找错误。您事先不知道这些功能是否有错误(以及什么样的漏洞)。
    • 社区:成员共享资源,互相帮助。
    • Zseano Methodology:从https://www.bugbountyhunter.com/methodology/下载

测试策略

确定您的测试范围。您不希望以非结构化方式测试应用程序的不同漏洞,因为这通常会导致浅薄的测试或让您觉得您已经搜索了所有内容。如果您坚持进行测试,请问问自己您在测试什么。设定一个 SMART 目标 – 指定您针对的漏洞是什么,完成测试的硬性截止日期等。此策略将帮助您了解要寻找哪些资源以及向您的同行询问具体问题。您还可以根据目标确定要查找的内容的优先级。

Example of a goal: For the next 4 hours, I will test on feature X for SQL Injection.

选择具有更大范围的程​​序。您想选择一个使用您熟悉的东西的程序。如果不是,那么您必须问问自己,这是否是您想要学习的东西。范围越大越好,因为研究人员不会专注于相同的目标,有些事情可能会被忽略。

来自 Tommy (dawgyg) DeVoss:在选择开始的程序时,需要考虑几件事。首先,也是最重要的,是选择一个程序,该程序采用您可能熟悉的堆栈/架构类型,或者有学习和攻击的愿望 […] 接下来,您将要考虑范围。当我查看一个程序来决定是否要花时间在上面时,我会寻找范围较大(例如通配符域,域越多越好)或具有非常复杂的 Web 应用程序的程序。我个人喜欢大范围,因为它有助于分散研究人员的注意力。

测试不常见的攻击媒介。这需要您在了解应用程序的工作原理(在技术和业务功能方面)方面做更多深入的工作。问问自己,您正在寻找的错误是否已经通过传统扫描仪自动测试过。例如,如果您在常见的攻击向量(例如输入框等)上测试普通的 XSS 有效载荷,则很可能有许多猎手已经这样做了。问问自己是否有其他方法可以在意想不到的攻击向量中触发 XSS 负载。

来自 Inti:我喜欢这样的边缘案例。如果我有秘密,那就是秘密。不要看每个人都在看的地方,因为你会得到重复的 […]以及扫描仪或其他研究人员不调查的其他事物。这会导致更大的影响,你会发现新类型的漏洞,你可以获得演讲者活动,写关于它的博客文章,机会很多。更多的是关于你的心态和开放的心态去尝试愚蠢的东西或未知的东西而不是遵循清单。

寻找有影响的错误。尝试提交有影响力且易于理解的错误。选择质量而不是数量。许多成功的猎手在开始寻找漏洞之前先阅读了程序策略。

做意想不到的动作不要提交应用程序期望的内容。相反,开始考虑开发人员没有考虑的事情。

来自彼得亚沃斯基:

  • 对于文本编辑器,如果您可以插入 html,请尝试加倍 html 属性,例如锚标记中的两个 href,或额外的引号,例如 markdown 示例。
  • 提交表单时,使用工具或代理删除参数(对于 Firefox,tamperdata 是一个很棒的工具)。同样,如果网站在将输入提交到服务器之前使用 JavaScript 来验证输入,那么在开发人员仅依赖 JavaScript 的情况下,请在验证后使用代理来更改值。
  • 组合步骤以创建漏洞。同样,在 Hackerone markdown 示例中,将悬挂的单引号与页面后面带有单引号的其他 html 结合在一起会产生漏洞。在 Google 的计划中,它们包含一个乘数,如果您需要多个步骤并且您可以实际证明所有步骤都是可以实现的,它们会增加您的奖励。
  • 考虑漏洞可能实际出现的位置。例如,Shopify 的披露程序声明它排除了您自己的商店或购物车上的漏洞(我从过度兴奋中学到了艰难的方法……)。但是,一些用于创建商店的字段也在外部使用。有一份披露报告表明货币格式字段允许 XSS 注入。乍一看,您会认为这会显示在商店页面上,所以谁在乎呢。但是,Shopify 使用相同的字段提供与 Facebook 和 Twitter 的集成,并实际渲染了 XSS,从而获得了 500 美元的赏金

 

寻找规避性的bug

我的笔记来自James Kettle 的 Hunting Evasive Vulnerabilities:Finding Flaws That Others Miss

  • 不要寻找防御;首先从攻击开始。
  • 寻找过时的缺陷。
  • 您对漏洞概念的理解可能已被破坏。深入挖掘原始资料,而不是接受出现在互联网搜索中的二手资料来学习。
  • 认识到来自新事物或未知事物的恐惧(技术听起来很酷,但是……)
  • 认识到您可能认为某事是一个难以置信的想法。不要只是尝试一些东西,如果它不起作用就放弃。而是这样做:解释为什么除非条件 X 存在,否则这个想法将行不通。尝试明显的以确保它明显是安全的。
  • 通过更好地了解特定的应用程序上下文、特定于应用程序的知识或其他人不方便的东西(例如他们无法测试该功能)来寻求获得优势。

资源

图书

平台/公司

评论

在线阅读

在线视频

论坛/博客

其他聚合资源

请登录后发表评论

    没有回复内容