ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

漏洞挖掘实战:从学习路径到变现逻辑全拆解

漏洞挖掘实战:从学习路径到变现逻辑全拆解

经常有人问我,搞安全技术是不是就得偷偷摸摸?不上班靠挖漏洞一年赚二十万,听起来像爽文,但真有人靠这个吃饭。今天我不聊虚的,就把漏洞挖掘这条路从学习路径、实战流程到变现逻辑完整拆一遍,告诉你这门手艺到底怎么练、钱是怎么来的,以及那些平台和文档里不会写的坑。

你不需要有黑客电影的玄学天赋,只需要把协议栈、Web应用原理和逻辑思维打磨到一定水平,再配合一套靠谱的授权范围内的测试方法论,就能在合法合规的漏洞赏金体系里找到自己的位置。这篇文章既适合想入行的新人,也适合已经在安全岗位但想尝试独立搞项目的朋友,我会把从0到1的核心动作、工具组合、报告写法、收入逻辑全部摊开说。

1. 内容整体设计与思路拆解

1.1 先搞清楚:挖漏洞到底在挖什么

漏洞挖掘不是拿着现成的攻击软件去扫网站,更像给一栋大楼做安全检查。你要发现的是业务系统里的逻辑缺陷、代码漏洞、配置疏漏,只要在厂商授权范围内测试并提交报告,就能获得对应的赏金。

攻防视角决定了你工作的价值边界。白帽黑客做的事情本质上是一道“证明题”:找出漏洞,证明它可被利用,然后把它修复掉。你赚的钱不是靠破坏换来的,而是靠帮厂商省下被真正攻击时可能造成的巨大损失溢价。

我刚入行时也幻想过找到惊天大洞一夜暴富,后来发现问题远没那么浪漫。百分之八十的漏洞属于逻辑越权、信息泄露、验证码绕过这类“不惊艳但有效”的条目,真正赚大钱的反而是那些在冷门业务逻辑里深耕的人。

1.2 知识体系怎么搭:先把技能树长全

很多人问我是不是要先学代码才能挖洞,我的答案是:不是先学完再动手,而是边学边用,用输出倒逼输入。最低限度的基础包括几块:

  • 网络基础:IP、域名、DNS解析、TCP握手、HTTP请求结构,至少要明白请求和响应里每一行代表什么。
  • Web安全基础:OWASP Top 10里的每类漏洞成因、利用条件、修复方案,这既是考试大纲也是工作地图。
  • 一门脚本语言:Python用来写自动化PoC,JavaScript用来分析前端逻辑。
  • 基础系统知识:Linux命令、文件权限、容器化部署结构,因为你测试的资产可能是一台云主机、一个微服务或一个K8s集群。

不用有开发经验,但要有“读代码”的能力。拿到一个有登录功能的系统,你如果只看界面操作而不去翻接口参数,基本等于闭着眼睛打靶。

1.3 路径选型逻辑:为什么从Web和业务逻辑入手

移动App、微信小程序、车联网、IOT,这些方向听着高级,但对个人新手不友好。原因是它们依赖硬件或源码环境,成本高、依赖链长、平台少。

我个人的建议是:把Web漏洞挖掘作为主攻方向。原因很实在:

  • 基于浏览器的测试链路简单,门槛最低。
  • 绝大多数赏金目标的核心资产都是Web应用或API接口。
  • 漏洞类型可复用性极强,今天在电商站挖到的越权思路,明天换到政务系统依然有效。
  • 互联网上的公开问题在Web端表现最丰富,失败和成功的反馈迭代最快。

当你在Web端建立起一套完整的“观察→假设→验证”循环后,再迁移到移动端、车联网,本质上是换汤不换药。

2. 核心细节解析与实操要点

2.1 侦察阶段:目标资产到底藏在哪里

挖一个授权目标,第一步绝对不是直接发请求包爆破,而是全面收集目标的信息资产。侦察阶段的厚度决定了你能挖到洞的上限。

常用的手段包括:通过证书透明度日志查询子域名、遍历DNS记录、扫描端口识别服务、爬取页面JS文件里的接口路径、利用公共资产测绘平台寻找子域名和关联IP。这些环节的核心目的就是扩大攻击面,同一个主站可能固若金汤,但某个测试环境子域名可能带着弱口令就裸露在公网。

我曾经在某个授权项目中试过直接爆破主域名登录接口,连字典都跑完了毫无收获。后来通过测绘工具找到一个二级子域名,竟然是一个未下线的老旧后台,只做了简单的白名单校验,一下就打开了突破口。侦察环节的投入产出比极高,值得花百分之四十的时间在这里。

2.2 常见漏洞类型的挖掘思路:从原理到手感

漏洞大类虽多,但高频率出现的类型就那么几个。我给你逐类拆一下:

越权漏洞:本质是服务端只校验了“是否登录”,没校验“登录者是谁”。挖掘思路是注册两个账号,A账号创建的数据用B账号去访问,如果能看到说明存在水平越权。这种漏洞危害极高,在后台管理类目标里几乎是必测项。

SQL注入:本质是把用户的输入拼进了数据库查询语句。现在参数化查询普及后,注入点比十年前少了很多,但还是会在搜索框、排序字段、导出功能这类开发容易忽视的地方出现。测试办法不是乱打单引号,而是观察参数值变化对返回结果的影响,再用时间盲注或布尔盲注做收敛。

文件上传:本质是服务端对上传内容校验不严格。挖掘思路是重点看头像上传、附件上传、导入模板上传的地方,尝试修改Content-Type、双扩展名、上传WebShell或超大文件制造拒绝服务。

验证码与风控绕过:比如验证码不失效、验证码可识别、接口未做频率限制。这类漏洞往往不被重视,却是业务逻辑里最容易出问题的地方。

2.3 验证漏洞的黄金准则:点到即止

挖到疑似漏洞后,新手最容易走两个极端:要么浅尝辄止,只看到一个现象就提交;要么过度利用,删了数据库数据或拖走大量敏感信息,直接把自己送进去。

核心准则只有一条:在最小必要范围内证明漏洞可造成危害即可。比如发现越权可以访问别人订单,你只需要截取自己的另一个测试账号订单来证明即可;发现SQL注入,你就用报错回显或延时函数证明库存在,不要去读几十万条用户数据。

这个准则不仅保护你安全,也保护你的报告评分。平台和厂商最反感那种为了写报告而破坏数据的测试者,一次越界可能会被封号甚至进入行业黑名单。

3. 实操过程与核心环节实现

3.1 动手前必须确认的三件事

在开始任何测试前,一定要确认三件事,缺一件都不能开工:

  • 目标是否在授权测试范围内:细读项目范围,有的平台按域名维度定义范围,有的是按IP段,务必确保你测试的每个子域名都在范围里。
  • 测试规则是什么:哪些时间段允许测试?是否禁止使用扫描器?是否禁止高并发请求?不同厂商规则差异极大。
  • 敏感数据的处理要求:碰到身份证号、银行卡、密码哈希必须就地打码,不下载、不传播、不保存。

我遇到过一些看起来特别诱人的目标,仔细读协议才发现只能测Web层,不能碰API和数据库。如果你越了界,再大的漏洞也变成了事故。

3.2 一套标准的挖洞实战流程演示

我用一个虚构的授权测试目标来走一遍完整流程。

目标是某电商平台(以下简称目标X),授权范围包含根域名及其下所有子域名,测试周期两周。

第一轮我做了三天信息收集,划定了以下几个攻击面:官网前台、商家管理中心、物流查询API、客服工单系统、旧版移动端H5页面。前四个目标都表现正常,而旧版H5页面引起了我的注意——它还在用五年前的前端框架,而且登录接口的返回包里有明显的版本信息。

第二轮围绕H5页面深度测试。我先注册了一个普通用户账号,再注册一个商家账号。发现在订单详情接口里,商家账号可以传入一个onwer_id参数来查询订单,而普通用户账号传这个参数也被正常解析。我把普通用户账号Cookie下携带的onwer_id改成商家账号的编号,结果成功拿到了商家订单信息。一个典型的产品漏洞:服务端只校验登录态,没有拿当前登录者身份去拼装查询条件。

这个漏洞的价值在于订单数据涉及大量个人隐私,属于越权类的中高危问题。我没有继续翻其他商家数据,而是用两个测试账号各下一单测试单,证明了“A账号可读B账号订单”后立即停止。

第三轮是报告撰写和提交。我在报告里写清楚了漏洞URL、参数名、请求包、返回包、影响范围和修复建议,并且附上了全程录制的短视频作为证据。提交后四天厂商确认了漏洞,评级为高危,兑换了对应的赏金。

3.3 工具链怎么选:顺手比大全更重要

工欲善其事,必先利其器。但我不建议你一次性装二十个工具,那样反而学不会。我日常常用的就五样:

  • 抓包改包工具(Burp Suite类):所有HTTP请求拦截、重放、编码转换都靠它,相当于你的显微镜。
  • 浏览器开发者工具:快速看JS、看LocalStorage、改请求参数,是最轻量又最好用的助手。
  • 网络扫描工具(Nmap类):做端口探测、服务识别、版本探测,识别攻击面。
  • 目录爆破工具(Dirsearch类):发现隐藏目录、备份文件、后台路径,专治“眼见为虚”。
  • 一款支持协作的笔记工具:记录子域名清单、测试账号、请求包变化、时间节点,所有洞都是从笔记里长出来的。

工具别贪多,关键在于你对自己常用的那款达到“肌肉记忆”级熟练度。很多人拿着Burp不会配代理,光这一步就卡住了。

3.4 个人的时间与精力分配策略

全职挖洞不是早上九点到下午六点的流水线,它的节奏和产出效率高度相关。我一般把一天分成三段:上午做侦察和常规目标扫描,下午集中精力做深度逻辑测试,晚上写报告和复盘。

每天早上起床先不碰电脑,而是花半小时回想前一天卡住的问题,有时在洗澡时突然想到一个测试思路,立刻记下来。这个习惯帮我解决过好几个连卡三天的漏洞。

每周还要固定留一天给自己“补血”:读新披露的漏洞报告、复现热点漏洞类型、看看最新的绕过姿势。这个行业变化快,一个星期不学习,手就生疏了。

4. 常见问题与排查技巧实录

4.1 为什么我总是挖不到漏洞

答案可能很扎心:不是你技术不够,而是你没有真正深入业务里去思考这个系统设计出来是干嘛的。漏洞永远藏在业务逻辑的“边界”上,订单状态流转、审批流、退款逻辑、会员等级升级,这些地方代码复杂,开发更容易出疏漏。

排查你自己的工作流,是不是总在首页、登录页这些表面位置重复测试?换一个思路:把目标系统当成一个积木搭成的流程机器,找出每个状态变化的节点,把普通用户、管理员、内部员工这三种身份叠加到每个节点上去试。

还有一个很常见的原因:你的字典太老。很多人在爆破后台路径时用几年前的老字典,现在的前端项目普遍使用随机文件名,老字典基本失效。建议定期从公开渠道收集新版本的字典去更新自己的路径库。

4.2 报告被忽略或评为零分,怎么办

提交漏洞石沉大海或者被标为忽略,是每个人都会经历的挫败。一半情况是重复提交,另一半是报告质量问题。

重复提交没办法,拼手速。但信息收集更全、更早发现目标最新更新,可以有效降低重复率。我最常使用的方法是订阅目标的更新公告:厂商修复一个漏洞后往往会引入另一个逻辑漏洞,这时候去测试,命中率很高。

报告质量问题则是可以完全靠自己改善的。一份合格的报告要有:明确的漏洞类型、一句话概括漏洞影响、完整可复现的请求包、清晰标红的目标参数、建议修复方案。最忌讳的是只丢一张截图然后写“登录接口出现问题”,审核人员一眼略过。

4.3 想提速,怎么批量找资产

当你对单个目标的主流程挖到极致后,产出会明显下降,这时候需要横向扩展资产。我会做以下几步:

  • 通过备案信息和证书库找出该企业所有域名。
  • 对所有域名做指纹识别,将相同指纹的站点分组,统一测同一类漏洞。
  • 观察目标在平台新上线的项目,第一时间去申请测试权限。

批量找资产的底層逻辑是高基数带来高命中率。一个站点测不出问题不代表十个站点都没有问题,本质上是提高你与“漏洞”相遇的概率。

4.4 我的独门技巧:用“新人视角”挖老系统

经验是把双刃剑,高手容易按照经验直接跳过“不可能”的路径,新人却会无意间踩中开发留的后门。我经常会把自己切换成一个刚入职的产品经理视角去操作目标系统:不按正常流程走,乱点按钮、连点两次提交、刷新页面后直接访问上一步URL、伪造某个不该存在的参数。很多开发者的逻辑漏洞就是在这种“乱序”操作下被暴露的。

有一次我测试一个报名系统,按照正常流程走完报名后,供应商只允许编辑自己公司的信息。但我把删除按钮的接口参数改成另一个公司的ID,却成功删除了对方公司的介绍内容。这就是因为开发只做了按钮层面的权限控制,而没有做服务端的数据归属校验。如果按部就班地走流程,永远找不出这个问题。

5. 从挖洞到变现:收入逻辑与自由职业真实一面

5.1 做赏金收入,核心是一门概率生意

年入二十万,不是每个月固定进账一千六,而是一个高度波动的概率游戏。收入来源主要包括几个部分:

  • 公共众测平台的漏洞赏金,一个高危漏洞几百到几千不等。
  • 厂商SRC的专项奖励,同一个漏洞可能翻倍。
  • 受邀参与私有漏洞测试项目的保底费用,按周计价。
  • 积累到一定影响力后,被安全公司邀请做技术顾问或合规渗透测试的抽成。

我见过有人每个月稳定提交三四个中危漏洞,收入曲线相当平滑;也见过突击型选手每周只挖一个点,但三个月只收获五个严重漏洞,单价非常高。这两种方式没有优劣,只有适不适合你的节奏。

5.2 不上班的代价:自由职业的隐性成本

很多人只看到“不上班”的轻松,忽略了自由职业的起码三项成本:没有稳定底薪造成的心理压力、需要自己缴纳社保的健康风险、以及永远没有加班费的工作时长。

我刚全职挖洞的头半年,收入只有上班时的一半,连续几个月看着账户数字焦虑到失眠。后来我调整了策略:每个月先锁定三千块的保底收入来源(私人渗透测试或技术答疑),剩下的时间再去做高波动的漏洞赏金,心里的压力一下子小了很多。

如果你也想走这条路,建议先保住本职工作,用业余时间挖够半年,验证收入曲线和节奏感之后,再考虑是否全职。别让激情替你做了决策。

5.3 学会做减法:在细分方向里成为前20%

漏洞挖掘行业里最值钱的人不是什么都懂的人,而是在某个细分领域做到前20%的人。你可以选的方向有很多:越权漏洞专家、反序列化漏洞专家、供应链攻击检测、车联网安全测试。

当你把某个类型研究到头,你在平台上的报告质量会明显提升,厂商会发现你提交的漏洞从不需要打回修改,复现率极高。到这一步,你的名字本身就有了价值。再往后,你会开始收到平台的定向邀请、厂商的私有项目邀请,甚至有人专门来问你:能不能帮我们看一个新上线的系统。

我个人在越权漏洞方向投入的时间最多,因为它的适用场景最广泛,几乎每种业务系统都有下单、支付、查询、退款的权限逻辑。同样是挖一个礼拜的洞,在越权方向可以覆盖多个目标,而在硬件方向可能连环境都还没搭好。

5.4 一条可复制的破局路线

最后给想入坑的朋友一条可复制的路线图:

第一步,花两周时间学完网络安全项下的“Web安全基础”和“渗透测试入门”两门课程,把OWASP Top 10过一遍。 第二步,在本地搭两三个漏洞靶场环境,每天固定打三小时的靶场,把每一关的漏洞原因是背下来为止。 第三步,去众测平台注册账号,从低难度项目开始,先以“提交低危漏洞”为目标练手,顺便把报告模板打磨好。 第四步,积累十份有效漏洞报告后,把目标转向有更高赏金的厂商SRC,开始测试更复杂的业务链。 第五步,当你能连续三个月每个月提交两个中危以上漏洞时,就可以规划全职或者接私有项目的方案了。

这条路最短也要四个月到半年,急不得。前面铺得越实,后面赚钱的斜率越陡。

拿到第一笔赏金时,那种兴奋感会让你觉得这条路特别对——但随后连续几天颗粒无收又会让你怀疑人生。我到现在也还保留着一个习惯:有产出的时候赶紧把方法论写进笔记,没产出的时候就去翻自己的笔记找灵感。沉下心去磨技术,把时间拉长到两年来看,回报会比大多数上班路径都丰厚。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进