漏洞赏金入门指南:从零开始成为安全研究员

这篇详细的漏洞赏金入门指南涵盖了从基础知识到实战技巧的完整学习路径,包括网络基础、编程技能、常见漏洞类型、自动化工具使用以及报告撰写等核心内容,适合想要进入网络安全领域的新手学习参考。

Bug Bounty Blueprint: A Beginner’s Guide

引言

漏洞赏金狩猎是一个近年来获得巨大动力的鼓舞人心领域。简单来说,漏洞赏金涉及奖励道德黑客识别和披露在参与者网站、移动或系统应用程序中发现的潜在安全漏洞。

漏洞赏金狩猎的挑战

对我来说,漏洞赏金狩猎在强度和需求上超过了传统的渗透测试。由于以下因素,它更加困难:

  • 重大漏洞:漏洞赏金计划通常关注展现真正业务影响的漏洞,为接受的漏洞类型设定了更高标准
  • 猎人之间的竞争:你将与数百名其他猎人竞争,只有第一个报告漏洞的人才能获得奖励
  • 新手困难:作为新人,初始阶段可能很困难,涉及识别有效漏洞并努力成为第一个发现它们的人

黑客态度

在进一步深入之前,理解成功进行漏洞赏金狩猎所需的态度至关重要。Eric S. Raymond的文章《如何成为黑客》是一个极好的起点。这篇文章概述了有抱负的黑客需要培养的基本态度,强调能力的重要性而非仅仅做表面文章。

掌握基础知识

在开始漏洞赏金之旅之前,必须建立对支撑网络安全世界的基础元素的扎实掌握。本节为您的探索奠定基础,确保您具备必要的知识来驾驭复杂的网络、系统和编程语言网络。

理解网络、Web和通信基础

网络基础: 获得对网络原则的基本理解,这是任何深入研究计算机领域的人的必备知识。

Web: 对于Web的概述,您应该阅读以下任意两个资源。这些不仅会刷新您的Web基础基础知识,还会为您迎接未来的挑战做好准备。

通信协议: 为了学习某物,您必须学习它如何工作以及数据如何在计算机内部或之间交换。在我们的案例中,要了解应用程序如何工作及其流程,我们需要学习它如何与您通信。

数据库: 您必须学习数据库基础知识并理解它,因为这是您作为黑客在许多情况下将要攻击的关键部分之一。

选择操作系统

根据Eric Steven Raymond的说法,“新手获取黑客技能可以采取的最重要一步是获取Linux或BSD-Unix之一的副本,将其安装在个人机器上并运行它。尝试在Microsoft Windows机器或任何其他闭源系统下学习黑客就像穿着身体石膏学习跳舞一样。”

无论您选择哪种操作系统,都要确保通过类似下面的备忘单熟悉基本命令。

编码熟练度:精通之路

虽然成为熟练的程序员可能不是强制性的,但在漏洞赏金狩猎领域,对编程语言的扎实理解无疑是有益的。

我个人在漏洞赏金中遭受了两年之苦,因为在许多情况下我无法真正理解特定代码的含义,无法正确利用问题,甚至无法进行一般编码,我仍在尽力追赶,所以我建议你们不要跳过这些部分。

使用以下语言加强您的编码技能:

  • HTML
  • PHP
  • JavaScript
  • SQL(结构化查询语言)
  • Java
  • C/C++

您从这些中学到的不仅仅是编程语言,还有您将要测试或构建的Web和系统通信的正确方式。

拥抱自动化

“永远不要派人去做机器的工作”

要真正在漏洞赏金狩猎世界中脱颖而出,掌握自动化至关重要。自动化使您能够更快、更高效地工作,并在减少重复任务的同时持续工作。

使用这些语言加强您的自动化能力,如果您能掌握以下一种或多种语言,您可以轻松且非常愉快地自动化您的工作并以更好的方式赚钱:

  • Python
  • Bash
  • Golang
  • Ruby

通过掌握这些基础组件,您将赋予自己编写工具、理解各种软件方面并拥抱自动化世界的能力。请记住,这是您成长的基础 - 完善您的技能,持续练习,并为您的漏洞赏金之旅奠定基础。

学习关于漏洞

这一部分全是关于建立您的技能,学习如何识别弱点,并武装自己成为漏洞赏金猎人的工具。在漏洞赏金中选择正确的开始路径非常重要。您的选择应与您的兴趣和愿望保持一致。虽然有些人由于Web应用程序路径的可接近性而选择它,但其他人可能会深入研究移动领域。在这里,我将专注于Web和移动路径,反映我自己的专业领域。

Web应用程序安全路径

Web应用程序路径因其可接近性而成为流行的起点。首先了解Web应用程序的复杂性及其可能隐藏的漏洞。诸如OWASP Top Ten项目、PortSwigger Web Security Academy等资源为您提供了导航此领域所需的基础知识和见解。

移动应用程序安全路径

对于那些对移动领域感兴趣的人,移动路径在召唤。沉浸于移动应用程序安全的世界, uncovering潜伏在其中的潜在漏洞。关键资源如OWASP移动安全项目、Android安全文档、iOS安全文档将作为您的指导灯塔,引导您穿越复杂的移动安全景观。

关键资源

以下平台应该是您学习安全的第一站:

  • HackerOne Hacker101
  • Bugcrowd University
  • Intigriti Hackademy

这些平台提供了丰富的资源和讲座,可以显著增强您的学习旅程。它们提供了宝贵的见解,通常超过我在这里可能分享的内容。

探索常见Web应用程序漏洞

这是您漏洞赏金之旅的关键阶段,我们学习您在寻找漏洞时可能遇到的常见Web应用程序漏洞。在本节中,我的重点是为您提供宝贵的资源来有效理解和学习这些漏洞。

跨站请求伪造(CSRF)

跨站请求伪造是一种强大的攻击,利用Web应用程序对经过身份验证的用户浏览器的信任。通过胁迫用户在不知情的情况下执行他们不打算的操作,攻击者可以操纵应用程序的功能并造成严重破坏。

跨站脚本(XSS)

跨站脚本,通常称为XSS,使恶意行为者能够将客户端脚本注入网页,可能危及查看这些页面的其他用户的安全。这些脚本可以在受害者的浏览器中执行,导致未经授权的操作、数据盗窃或恶意软件的传播。

SQL注入

SQL注入是一种常见的攻击向量,使用恶意SQL代码进行后端数据库操纵以访问本不打算显示的信息。

远程代码执行(RCE)

远程代码执行(RCE)是一种强大的技术,赋予攻击者在受害者系统上执行自己代码的能力。想象一下,如果恶意行为者获得对机器的控制,使他们能够随意操纵它,可能造成的潜在破坏。

不安全的直接对象引用(IDOR)

在IDOR中,应用程序基于用户提供的输入提供对对象的直接访问。由于此漏洞,攻击者可以绕过授权并直接访问系统中的资源。

HTTP请求走私

HTTP请求走私是一种干扰网站处理从一个或多个用户接收的HTTP请求序列的技术。请求走私漏洞通常是关键性质的,允许攻击者绕过安全控制、获得对敏感数据的未经授权访问,并直接危害其他应用程序用户。

Web缓存欺骗(WCD)

Web缓存欺骗(WCD)是一种攻击,其中攻击者欺骗缓存代理 improperly存储通过互联网发送的私人信息,并获得对这些缓存数据的未经授权访问。

无限制文件上传

顾名思义,无限制文件上传允许用户将恶意文件上传到系统以进一步利用进行代码执行。将无限制文件上传视为允许未经授权文件渗透应用程序的未锁门。此漏洞为攻击者上传和操纵文件奠定了基础,可能获得对系统的未经授权控制。

XML外部实体攻击(XXE)

XXE是针对解析XML输入的应用程序的攻击。当处理包含对外部实体引用的XML输入的弱配置XML解析器时,会发生此攻击。

本地文件包含(LFI)

文件包含漏洞允许攻击者包含文件,通常利用目标应用程序中实现的"动态文件包含"机制。由于使用用户提供的输入而没有适当验证而发生漏洞。

子域名接管

当攻击者获得对目标域的子域的控制时,会发生子域名接管。通常,当子域在域名系统(DNS)中具有规范名称(CNAME),但没有主机为其提供内容时,会发生这种情况。

服务器端请求伪造(SSRF)

服务器端请求伪造(也称为SSRF)是一种Web安全漏洞,允许攻击者诱导服务器端应用程序向意外位置发出请求。在典型的SSRF攻击中,攻击者可能导致服务器连接到组织基础设施内的仅内部服务。在其他情况下,他们可能能够强制服务器连接到任意外部系统,可能泄露敏感数据,如授权凭据。

反序列化

竞争条件

业务逻辑缺陷

认证绕过

HTTP头注入

电子邮件相关

信息泄露

漏洞赏金工具和脚本:您成功狩猎的武器库

漏洞赏金狩猎是一种以大量使用安全工具而闻名的职业。这些工具帮助我们在软件、Web和移动应用程序中查找漏洞,是赏金狩猎的组成部分。以下是漏洞赏金猎人的安全工具列表。

您绝对应该了解的工具

  • BurpSuite:Burp Suite是一种用于Web应用程序渗透测试的软件安全应用程序
  • ZAP:OWASP ZAP是一种开源Web应用程序安全扫描程序
  • Caido:轻量级Web安全审计工具包

侦察工具

子域名枚举

  • Sublist3r - 用于渗透测试人员的快速子域名枚举工具
  • Amass - 深入的攻击面映射和资产发现
  • massdns - 用于批量查找和侦察的高性能DNS存根解析器
  • Findomain - 最快和跨平台的子域名枚举器

端口扫描

  • masscan - TCP端口扫描器,异步发出SYN数据包,在5分钟内扫描整个互联网
  • RustScan - 现代端口扫描器
  • naabu - 用Go编写的快速端口扫描器,专注于可靠性和简单性

屏幕截图

  • EyeWitness - EyeWitness旨在拍摄网站截图,提供一些服务器头信息,并在可能的情况下识别默认凭据
  • aquatone - Aquatone是一种用于跨大量主机视觉检查网站的工具,便于快速获得基于HTTP的攻击面概述

技术识别

  • wappalyzer - 识别网站上的技术
  • webanalyze - Wappalyzer的端口(发现网站上使用的技术)以自动化大规模扫描

内容发现

  • gobuster - 用Go编写的目录/文件、DNS和VHost爆破工具
  • feroxbuster - 用Rust编写的快速、简单、递归内容发现工具
  • dirsearch - Web路径扫描器

利用工具

命令注入

  • commix - 自动化一体化OS命令注入和利用工具

CORS错误配置

  • Corsy - CORS错误配置扫描器
  • CORStest - 简单的CORS错误配置扫描器

CRLF注入

  • CRLFsuite - 专门设计用于扫描CRLF注入的快速工具
  • crlfuzz - 用Go编写的扫描CRLF漏洞的快速工具

CSRF注入

  • XSRFProbe - 主要的跨站请求伪造(CSRF)审计和利用工具包

目录遍历

  • dotdotpwn - DotDotPwn - 目录遍历模糊测试器

文件包含

  • liffy - 本地文件包含利用工具

GraphQL注入

  • inql - InQL - 用于GraphQL安全测试的Burp扩展

不安全的反序列化

  • ysoserial - 用于生成利用不安全Java对象反序列化的有效负载的概念验证工具

不安全的直接对象引用

  • Autorize - 用于burp套件的自动授权强制执行检测扩展,用Jython开发

开放重定向

  • Oralyzer - 开放重定向分析器

竞争条件

  • razzer - 专注于竞争错误的内核模糊测试器

请求走私

  • http-request-smuggling - HTTP请求走私检测工具
  • smuggler - Smuggler - 用Python 3编写的HTTP请求走私/反同步测试工具

服务器端请求伪造

  • SSRFmap - 自动SSRF模糊测试器和利用工具
  • Gopherus - 此工具生成gopher链接以利用SSRF并在各种服务器中获得RCE

SQL注入

  • sqlmap - 自动SQL注入和数据库接管工具
  • NoSQLMap - 自动化NoSQL数据库枚举和Web应用程序利用工具

XSS注入

  • XSStrike - 最先进的XSS扫描器
  • xssor2 - XSS’OR - 用JavaScript黑客攻击
  • dalfox - DalFox(XSS查找器)/ 基于golang的参数分析和XSS扫描工具

XXE注入

  • ground-control - 在我的Web服务器上运行的脚本集合。主要用于调试SSRF、盲XSS和XXE漏洞
  • dtd-finder - 列出DTD并使用这些本地DTD生成XXE有效负载

持续学习和实践

漏洞赏金狩猎需要持续学习和实践。随着您的进步,您会发现每个漏洞赏金计划都有其独特的挑战和奖励。从您的经验中学习,并始终努力改进您的技能。

当您开始成为漏洞赏金猎人的旅程时,您会发现练习和磨练您的技能是至关重要的一步。Capture The Flag(CTF)挑战通过模拟真实世界的漏洞提供了一个极好的平台来锻炼您的能力。参与这些挑战使您接触渗透应用程序和系统有效所需的各种技术。

学习和实践资源

为了帮助您的漏洞赏金狩猎之旅,这里有一个策划的知名CTF平台和学习资源列表:

  • PentesterLab:PentesterLab是学习Web应用程序安全及其如何被颠覆的绝佳资源
  • Hacker101:此平台提供了一系列专注于实践技能的Web安全挑战
  • Hack The Box:凭借充满活力的社区,Hack The Box提供了涵盖各种技能水平的多样化现实挑战集
  • OverTheWire Wargames:此平台提供了一系列旨在教授和测试各种安全概念的战争游戏
  • VulnHub:VulnHub提供了易受攻击的虚拟机集合,允许您在受控环境中练习利用真实场景

认证:您的学习路径

虽然实践经验和自学是成为成功的网络安全研究员和漏洞赏金猎人的重要组成部分,但认证在增强您的技能和可信度以及帮助您将来获得更好工作方面发挥着重要作用。以下是您作为初学者可能考虑追求的一些认证:

  • CompTIA Security+
  • Google Cybersecurity Certificate
  • Certified Ethical Hacker (CEH)
  • GIAC Security Essentials Certification (GSEC)
  • eLearnSecurity Certified Professional Penetration Tester (eCPPT)
  • Offensive Security Certified Professional (OSCP)
  • (ISC)² CC - Certified in Cybersecurity

选择目标、测试和编写有效报告

在这个阶段,我们将深入研究选择目标的关键过程,开始测试,并最终制作有影响力的错误报告。让我们直接开始吧!

选择和接近目标

选择正确的目标是一个关键决策,为您的漏洞赏金狩猎努力奠定了基础。老实说,您的选择应基于您的心情、经验和技能水平。您可以选择具有广泛范围的目标,包含多个网站、子域和移动应用程序。或者,您可能更喜欢专注于具有复杂功能的单个域或应用程序进行深度测试。

漏洞赏金平台列表

为了识别合适的程序,诸如下面的漏洞赏金平台提供了程序目录:

  • Bugcrowd
  • HackerOne
  • Intigriti
  • Yes We Hack
  • Hacken Proof
  • Open Bug Bounty

像Google、Facebook和Apple这样的个别巨头运行自己的漏洞赏金程序,就像许多其他公司一样。

当接近目标时,仔细的侦察是关键。进行对域历史、链接、IP和Wayback信息的彻底审查以获得见解。维护您活动的详细记录。通过测试应用程序中的特定功能或工作流来启动您的测试过程。首先搜索低挂果实和表面级错误,记录它们的存在。像Burp Suite或OWASP ZAP这样的工具对于观察工作流和请求是非常宝贵的。

创建多个帐户允许您测试用户对用户的交互。如果未提供,请求其他帐户,因为这是常见做法。与应用程序的流程互动,测试和探测异常行为。虽然遇到异常并不总是表示值得报告的错误,但持续探索可能揭示安全影响。熟悉主要安全漏洞及其相应方法。Web应用程序流理解至关重要;深入研究API文档以增强理解。如果您遇到挑战,请做详细记录以供将来参考。

报告漏洞

在投入大量时间学习、练习并成功识别漏洞后,报告编写阶段成为关键步骤。制作有效的报告需要精确和清晰,以确保您的发现正确传达给安全团队。结构良好的报告加快了审查过程并增强了协作。考虑以下指南:

  • 彻底性:详细说明重现错误所需的每个步骤。通过提供全面信息消除歧义
  • 简单性:避免不必要的复杂性。虽然技术细节很重要,但过度的复杂性可能阻碍理解
  • 影响沟通:清楚传达漏洞的潜在影响。如果影响超过初始假设,用证据支持您的主张
  • 礼貌:请记住,您的报告是传递给人类的。在沟通中要有礼貌、耐心和尊重
  • 媒体元素:使用截图、视频或其他媒体来支持您的报告。视觉辅助可以显著增强清晰度

最终想法:漏洞赏金猎人的视角

通过这最后一部分,您现在已经了解了漏洞赏金狩猎几乎每个关键方面的见解。您的知识、技能和奉献精神无疑将推动您在令人兴奋且不断发展的漏洞赏金狩猎和道德黑客世界中取得成功。

作为探索安全的人,跟上最新动态可能很困难。对于那些刚刚开始的人,请记住自学的能力。凭借采取第一步的热情,您可以实现任何目标。我仍在学习,并希望分享我的知识以帮助他人学习。

请记住,您可能不完美,但您已经比大多数人更优秀。

对于漏洞赏金猎人和网络安全研究员来说,热情是关键。我希望这篇文章激励您开始一些积极的事情。感谢您的阅读。这是我现在可以分享的内容,但我承诺会尽可能多地更新这篇文章,为更多读者提供更多有用的见解。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计