1. 项目概述从“赏金猎人”的视角看企业SRC如果你对网络安全感兴趣或者经常在技术社区里看到“SRC”、“漏洞赏金”、“白帽子”这些词心里痒痒但又觉得门槛太高那这篇内容就是为你准备的。我干了十多年安全从自己摸索挖洞到后来带团队、给企业做安全评估可以说SRCSecurity Response Center安全应急响应中心是连接安全爱好者和企业最直接、也最“有利可图”的桥梁。它不是什么神秘组织简单说就是企业设立的、欢迎外部安全人员提交漏洞并给予奖励的平台。你发现的漏洞越有价值获得的“赏金”就越高这行里靠这个实现“财务自由”的顶尖高手不在少数。但别被“零基础到精通”的标题吓到或过度兴奋。这条路确实能走通但绝非看一篇文章、学几个工具就能速成。它更像是一场马拉松需要扎实的基础、系统的思维和大量的实战。今天我就以一个老“赏金猎人”的身份把这条路上的核心技巧、思维框架以及那些新手最容易踩的坑掰开揉碎了讲给你听。我们的目标不是成为工具的使用者而是成为问题的发现者和解决者。2. 核心思路漏洞挖掘不是“瞎猫碰死耗子”很多新手一上来就打开扫描器对着目标一顿狂扫结果要么一无所获要么提交一堆误报被平台拉黑。这完全走错了方向。高效的漏洞挖掘70%的功夫在信息收集和逻辑分析30%才是技术验证。2.1 思维转变从“黑客”到“安全分析师”首先忘掉电影里那种瞬间攻破系统的酷炫画面。企业SRC漏洞挖掘本质上是一场不对等的“捉迷藏”。防守方企业拥有系统的全部信息而作为攻击方的你只能从外部有限的入口去观察、推理和试探。你的核心优势不是技术碾压而是耐心、细致和创造性思维。你需要像侦探一样不放过任何蛛丝马迹。一个不起眼的JS文件里可能泄露了内部API接口一个忘记删除的测试页面可能通向后台一个参数的回显差异可能暗示着SQL注入。你的武器库不仅仅是Nmap、Burp Suite这些工具更重要的是你的浏览器开发者工具、你的笔记、以及你不断提问的大脑“这个功能为什么这样设计”“如果我是开发者这里可能会犯什么错”2.2 目标选择与优先级找准“软柿子”不是所有目标都适合新手。一开始就挑战阿里、腾讯的SRC挫败感会很强。我的建议是从“教育SRC”和“补天SRC”等综合性平台入手这些平台聚合了大量中小企业的漏洞提交目标类型多样漏洞难度梯度明显。你可以先看别人提交了哪些漏洞学习他们的思路和报告写法。关注新上线或刚进行重大更新的业务新功能往往伴随着新的代码和可能未被充分测试的安全逻辑是漏洞的富矿。优先选择业务逻辑复杂的系统如电商涉及支付、订单、优惠券、OA涉及权限、流程、社交涉及用户交互、内容处理等。业务越复杂出现逻辑漏洞的概率越高。避开纯静态官网一个只有公司介绍和联系方式的网站挖出漏洞的概率极低价值也不高。注意绝对不要对非授权目标进行任何测试。只在企业明确公开的SRC范围内针对其规定的资产进行测试。未经授权的测试是违法行为。3. 核心技能栈拆解你的“赏金猎人”工具箱工欲善其事必先利其器。下面这个工具箱不是让你全部精通而是告诉你需要了解什么以及学习的路径。3.1 基础网络知识必须牢固这是你的地基看不懂HTTP协议后面的所有工具和技巧都是空中楼阁。HTTP/HTTPS协议必须彻底理解URL结构、请求方法GET, POST, PUT, DELETE等、状态码、请求头/响应头尤其是Cookie、Session、Origin、Referer、CSP等安全相关头部、报文主体。Web前后端基础知道HTML/CSS/JavaScript是如何在浏览器端工作的了解一点后端语言如PHP、Java、Python如何处理请求、连接数据库、渲染模板。不需要你会写但要能读懂简单的代码逻辑。同源策略与CORS理解浏览器为什么以及如何限制跨域请求这是很多前端安全问题的根源。3.2 信息收集漏洞挖掘的“雷达系统”信息收集的广度和深度直接决定了你能发现多少攻击面。这步做得好事半功倍。子域名发现工具subfinder,amass,assetfinder 以及在线平台如censys,fofa,shodan。技巧除了常规扫描别忘了检查域名的DNS解析记录A, AAAA, CNAME, MX, TXT。TXT记录里可能有SPF配置或其他信息泄露。证书透明度日志CT Log也是发现子域名的宝库。目录与文件枚举工具dirsearch,gobuster,ffuf。字典的质量至关重要推荐使用SecLists项目中的字典并根据目标技术栈如Spring, WordPress进行定制。技巧重点寻找备份文件.bak, .old, .tar.gz、配置文件.git/, .env, config.php、管理后台/admin, /manage、API文档/swagger-ui, /api-docs、测试页面/test, /demo。指纹识别工具Wappalyzer(浏览器插件),whatweb,nmap脚本。目的快速识别目标使用的Web框架如Spring Boot, Django、前端框架如Vue, React、中间件如Nginx, Apache Tomcat、数据库等。知道对方用什么就能快速联想相关的历史漏洞和常见错误配置。端口与服务探测工具nmap是王者。进行全端口扫描识别开放的服务如22/SSH, 3306/MySQL, 6379/Redis, 9200/Elasticsearch。技巧非Web端口可能隐藏着管理界面或存在漏洞的服务。一个对外开放的Redis未授权访问可能比一个复杂的Web漏洞更容易拿到权限。3.3 漏洞探测与利用从理论到实践这是核心战斗环节。我将漏洞分为几大类并给出核心思路和工具。3.3.1 通用Web漏洞这类漏洞有比较固定的模式和Payload。SQL注入思路在所有用户输入点参数、Header、Cookie尝试插入、、\等特殊字符观察回显错误。使用AND 11/AND 12进行布尔盲注测试。工具sqlmap是自动化神器但切忌无脑跑。先手动确认存在注入点再用sqlmap深入获取数据。理解它的--tamper参数用于绕过WAF至关重要。新型注入关注JSON格式注入、SQL注入在NoSQL如MongoDB中的变种。跨站脚本XSS思路寻找所有将用户输入输出到页面的地方。测试scriptalert(1)/script等基础Payload。区分反射型、存储型和DOM型。工具Burp Suite的 Scanner 模块 浏览器控制台观察DOM变化。深入研究绕过技巧编码绕过、利用HTML事件、SVG/MathML标签、CSP绕过。存储型XSS的价值通常远高于反射型。跨站请求伪造CSRF思路检查关键操作修改密码、转账、添加管理员的请求是否仅依赖Cookie验证而没有使用CSRF Token、验证Referer或自定义Header。工具Burp Suite 的Generate CSRF PoC功能可以快速生成测试页面。服务器端请求伪造SSRF思路寻找功能点网络图片加载、PDF生成、远程API调用、Webhook设置等。尝试将参数值改为http://127.0.0.1:80、file:///etc/passwd或指向内部服务的地址如http://169.254.169.254/获取云元数据。绕过使用DNS重绑定、利用URL解析差异如http://foo127.0.0.1、进制/编码转换。3.3.2 业务逻辑漏洞这是“赏金猎人”的黄金矿脉自动化工具很难发现全靠人脑分析。价值高且能体现你的水平。越权漏洞水平越权修改请求中的ID参数如/user/123/profile改为/user/456/profile看是否能访问他人数据。垂直越权普通用户能否访问仅管理员可见的API或页面尝试直接拼接管理员后台URL或修改Cookie/Token中的角色标识。流程绕过顺序绕过比如支付流程是否可以不经过确认订单页面直接发起支付请求验证绕过短信/邮箱验证码是否可爆破0000-9999是否在响应包中直接返回验证成功后是否可以通过修改状态参数直接进入下一步竞争条件思路在涉及库存、余额、优惠券数量的关键操作上使用Burp Suite的Turbo Intruder或自己写Python脚本同时发起数十上百个并发请求看逻辑是否被破坏。例如“领取唯一优惠券”逻辑并发请求可能导致一张券被多人领取。输入校验漏洞负数支付金额为-0.01元余额是否增加超大数数量字段传入9999999999是否会导致整数溢出或程序异常特殊字符用户名中传入换行符\n在后续的日志、导出功能中是否会引发问题3.3.3 组件与配置漏洞框架/中间件漏洞通过指纹识别结果搜索相关组件的历史CVE漏洞。例如Spring Cloud Function SpEL表达式注入、Log4j2、Fastjson反序列化等。关注github.com/projectdiscovery/nuclei-templates这里有海量的已知漏洞POC模板。配置错误目录遍历/static/../../etc/passwd敏感文件泄露.git目录暴露导致源码泄露/actuator/health、/actuator/env等Spring Boot Actuator端点未授权访问。CORS错误配置Access-Control-Allow-Origin: *可能导致敏感数据被恶意网站窃取。HTTP方法滥用开启PUT、DELETE等方法可能导致文件上传或删除。3.4 核心工具链详解Burp Suite (Professional)瑞士军刀。核心模块Proxy抓包改包、Repeater重放请求、Intruder爆破枚举、Scanner主动扫描、Collaborator用于检测盲注、SSRF等外部交互漏洞。熟练掌握Repeater和Intruder是入门的关键。浏览器开发者工具 (F12)你的另一双眼睛。Network标签看所有请求Sources标签看前端源码Console标签执行JS调试Application标签看Cookie、LocalStorage。Nmap不仅仅是端口扫描。使用-sV探测服务版本-sC运行默认脚本-A进行激进扫描。--script参数可以调用丰富的漏洞检测脚本。命令行三剑客curl手动发送HTTP请求、jq处理JSON响应、grep/awk过滤文本。在自动化信息收集和简单漏洞验证时它们比图形化工具更高效。4. 实战流程一次完整的漏洞挖掘之旅光说不练假把式。我们模拟一次对某个虚构在线教育平台edu.example.com的挖掘过程。4.1 第一阶段广撒网式信息收集子域名枚举subfinder -d edu.example.com -silent | tee subdomains.txt amass enum -passive -d edu.example.com subdomains.txt # 去重后我们得到了edu.example.com, api.edu.example.com, admin.edu.example.com, exam.edu.example.com, static.edu.example.com端口扫描与服务识别nmap -sV -p- --min-rate 1000 -iL subdomains.txt -oA nmap_scan发现admin.edu.example.com:8080运行着Apache Tomcat/8.5.35。Web目录扫描ffuf -u https://edu.example.com/FUZZ -w /path/to/seclists/Discovery/Web-Content/common.txt -fc 403,404发现/backup.zip,/phpinfo.php(危险信号)。指纹识别Wappalyzer显示主站使用ThinkPHP 5.0。立刻在脑中拉响警报ThinkPHP有多个历史RCE漏洞。4.2 第二阶段重点目标深度探测检查admin.edu.example.com:8080访问发现是Tomcat默认管理页面尝试弱口令admin/admin、tomcat/tomcat未果。但发现manager/html路径存在同样需要认证。检查主站ThinkPHP访问/index.php?scaptcha验证是否存在已知的ThinkPHP 5.x远程代码执行漏洞。使用公开POC测试发现该路径已被拦截但返回了一个独特的错误页面说明该路由是存在的可能只是被WAF拦截。分析exam.edu.example.com这是一个在线考试系统。快速功能遍历注册、登录、参加考试、查看成绩。4.3 第三阶段漏洞挖掘与验证在考试系统我关注“查看成绩报告”功能。抓包使用Burp抓取查看成绩报告的请求GET /exam/report?exam_id12345user_id1001。越权测试将user_id参数修改为1002同班其他同学重放请求。成功返回了用户1002的详细成绩报告这是一个典型的水平越权漏洞。逻辑漏洞挖掘在“支付购买课程”环节抓取支付请求。发现请求体为{“course_id”: “a1b2”, “price”: 299, “coupon_code”: “”}。我尝试将price改为0.01返回“价格不匹配”。尝试改为-1返回“价格无效”。尝试改为1远低于原价请求竟然成功了服务器只验证了价格大于0却没有和课程原价比对。接着我尝试在支付成功后、但课程还未开通的瞬间有一个“处理中”状态并发发起退款请求同时继续访问课程视频。发现了一个时间窗口可以免费观看课程。这是一个业务逻辑漏洞价格校验不严和潜在的竞争条件漏洞。4.4 第四阶段编写高质量漏洞报告这是换取赏金的最后一步也是最重要的一步之一。报告写不好漏洞可能被降级或拒绝。标题清晰明了。[edu.example.com] 在线考试系统成绩报告接口存在水平越权访问漏洞漏洞等级根据漏洞危害客观自评高危、中危、低危。水平越权通常中危支付逻辑漏洞可能高危。漏洞详情目标URLhttps://exam.edu.example.com/exam/report请求包完整粘贴HTTP请求包括Cookie。复现步骤一步一步像教程一样清晰。使用账号Auser_id: 1001登录考试系统。完成一次考试进入成绩报告页面。使用Burp Suite拦截GET /exam/report?exam_id12345user_id1001请求。将参数user_id修改为1002。转发请求可成功查看用户1002的私有成绩报告。漏洞证明截图截图截图包含修改参数的请求和成功看到他人数据的响应页面。修复建议给出具体方案。“建议在服务端对user_id进行强制校验确保当前登录用户只能访问属于自己的报告数据。可参考代码if (current_user_id ! request.user_id) { return forbidden(); }”5. 进阶技巧与深度思考当你掌握了基础漏洞的挖掘方法后下面这些思路能帮你找到更高价值、更隐蔽的漏洞。5.1 漏洞链的构建单个漏洞可能危害有限但组合起来威力巨大。案例首先通过一个信息泄露漏洞如JS文件泄露内部API地址internal-api.corp.com然后利用一个SSRF漏洞在某个功能点可发起内部请求让服务器去访问internal-api.corp.com/admin/deleteAllUsers。这就将信息泄露和SSRF组合成了一个新的高危漏洞。思维时刻思考“如果我有一个X漏洞我能用它来做什么能否为另一个漏洞创造条件”5.2 关注新型攻击面GraphQL API越来越多的应用使用GraphQL。关注其自省Introspection功能是否关闭是否存在DoS通过复杂嵌套查询耗尽资源以及传统的注入点。WebSocket实时通信中的漏洞如认证绕过、消息篡改、DoS。桌面/移动端应用很多应用的业务核心在客户端通过抓包配置代理证书分析其与服务器的通信协议常能找到加密薄弱、逻辑校验在客户端等问题。第三方集成OAuth登录回调、支付回调、Webhook等。攻击者能否伪造回调能否利用回调进行SSRF或开放重定向5.3 自动化与效率提升手动测试是根本但自动化能解放你去做更有价值的思考。自定义扫描器用Python的requests库编写脚本自动化测试批量目标的某个特定漏洞如某个ThinkPHP的特定路径。工作流整合使用nuclei这类工具将信息收集subfinder, httpx的结果作为输入自动进行已知漏洞的检测。Burp插件开发如果你熟悉Java或Python可以为Burp编写插件自动化你的测试逻辑。比如自动检测所有参数是否可进行越权测试。6. 常见问题、避坑指南与心态建设这条路坑很多这里分享一些血泪教训。6.1 技术性常见问题问题可能原因与排查思路解决方案/建议Burp抓不到HTTPS包浏览器未正确配置代理或未安装Burp的CA证书。1. 确保浏览器代理设置为127.0.0.1:8080。2. 访问http://burp下载并安装CA证书到“受信任的根证书颁发机构”。提交的漏洞被判定为“重复”或“已知”别人已经提交过了。信息收集要快关注新目标、新功能。在提交前可以在平台的已公开漏洞中搜索关键词看是否已被报告。扫描器被WAF封禁IP扫描频率过高、特征明显。1. 降低扫描速率设置延迟。2. 使用随机User-Agent。3. 使用代理池需谨慎确保合规。4.最佳实践以手动测试为主扫描为辅。无法复现漏洞环境差异、步骤不清、漏洞已被临时修复。1. 报告步骤必须极其详细包含所有输入和上下文。2. 录制屏幕视频是最有力的证据。3. 在测试时及时保存所有请求响应数据包。挖不到漏洞感到沮丧目标太硬、方法不对、经验不足。1.调整目标换一个更容易的目标。2.转变思路从通用漏洞转向业务逻辑漏洞。3.学习案例多读其他优秀白帽子的漏洞报告。6.2 非技术性“大坑”违反规则这是最严重的错误。绝对不要进行DDoS攻击、暴力破解核心账号、使用自动化工具对生产环境进行高负荷扫描、测试非授权资产、窃取或篡改真实用户数据。这会导致账号被封禁甚至承担法律责任。漏洞报告质量差描述模糊、步骤缺失、没有截图。审核人员每天看大量报告低质量报告很可能被直接忽略或降级。把你当成审核员想想什么样的报告能让你一眼看懂并认可漏洞。沟通态度问题与SRC运营人员沟通时保持专业和礼貌。即使对漏洞评级有异议也应基于技术细节进行理性讨论。6.3 心态与持续学习漏洞挖掘是一场持久战心态比技术有时更重要。保持耐心与好奇心可能连续几天一无所获但一个灵光乍现就可能发现一个高危漏洞。把每次测试都当作一次解谜游戏。建立知识体系不要零散地学。可以按漏洞类型如专门研究一个月SSRF、按技术栈如专门研究Spring Security安全配置进行主题式深度学习。动手实践及时复盘在合规的靶场如DVWA, WebGoat, PortSwigger的Web Security Academy练习。每挖到一个漏洞或错过一个漏洞都要复盘整个过程我是怎么发现的为什么之前没发现下次如何改进融入社区关注安全社区、博客、Twitter上的安全研究员学习他们的思路和技巧。这条路没有真正的“精通”只有不断前进。每一个你认真提交的漏洞都在让网络世界变得更安全一点同时也在为你自己的能力和信誉添砖加瓦。从今天起从一个简单的目标开始打开Burp Suite开启你的“赏金猎人”之旅吧。记住最强的工具永远是你善于观察和思考的大脑。
企业SRC漏洞挖掘实战:从信息收集到逻辑漏洞的赏金猎人指南
1. 项目概述从“赏金猎人”的视角看企业SRC如果你对网络安全感兴趣或者经常在技术社区里看到“SRC”、“漏洞赏金”、“白帽子”这些词心里痒痒但又觉得门槛太高那这篇内容就是为你准备的。我干了十多年安全从自己摸索挖洞到后来带团队、给企业做安全评估可以说SRCSecurity Response Center安全应急响应中心是连接安全爱好者和企业最直接、也最“有利可图”的桥梁。它不是什么神秘组织简单说就是企业设立的、欢迎外部安全人员提交漏洞并给予奖励的平台。你发现的漏洞越有价值获得的“赏金”就越高这行里靠这个实现“财务自由”的顶尖高手不在少数。但别被“零基础到精通”的标题吓到或过度兴奋。这条路确实能走通但绝非看一篇文章、学几个工具就能速成。它更像是一场马拉松需要扎实的基础、系统的思维和大量的实战。今天我就以一个老“赏金猎人”的身份把这条路上的核心技巧、思维框架以及那些新手最容易踩的坑掰开揉碎了讲给你听。我们的目标不是成为工具的使用者而是成为问题的发现者和解决者。2. 核心思路漏洞挖掘不是“瞎猫碰死耗子”很多新手一上来就打开扫描器对着目标一顿狂扫结果要么一无所获要么提交一堆误报被平台拉黑。这完全走错了方向。高效的漏洞挖掘70%的功夫在信息收集和逻辑分析30%才是技术验证。2.1 思维转变从“黑客”到“安全分析师”首先忘掉电影里那种瞬间攻破系统的酷炫画面。企业SRC漏洞挖掘本质上是一场不对等的“捉迷藏”。防守方企业拥有系统的全部信息而作为攻击方的你只能从外部有限的入口去观察、推理和试探。你的核心优势不是技术碾压而是耐心、细致和创造性思维。你需要像侦探一样不放过任何蛛丝马迹。一个不起眼的JS文件里可能泄露了内部API接口一个忘记删除的测试页面可能通向后台一个参数的回显差异可能暗示着SQL注入。你的武器库不仅仅是Nmap、Burp Suite这些工具更重要的是你的浏览器开发者工具、你的笔记、以及你不断提问的大脑“这个功能为什么这样设计”“如果我是开发者这里可能会犯什么错”2.2 目标选择与优先级找准“软柿子”不是所有目标都适合新手。一开始就挑战阿里、腾讯的SRC挫败感会很强。我的建议是从“教育SRC”和“补天SRC”等综合性平台入手这些平台聚合了大量中小企业的漏洞提交目标类型多样漏洞难度梯度明显。你可以先看别人提交了哪些漏洞学习他们的思路和报告写法。关注新上线或刚进行重大更新的业务新功能往往伴随着新的代码和可能未被充分测试的安全逻辑是漏洞的富矿。优先选择业务逻辑复杂的系统如电商涉及支付、订单、优惠券、OA涉及权限、流程、社交涉及用户交互、内容处理等。业务越复杂出现逻辑漏洞的概率越高。避开纯静态官网一个只有公司介绍和联系方式的网站挖出漏洞的概率极低价值也不高。注意绝对不要对非授权目标进行任何测试。只在企业明确公开的SRC范围内针对其规定的资产进行测试。未经授权的测试是违法行为。3. 核心技能栈拆解你的“赏金猎人”工具箱工欲善其事必先利其器。下面这个工具箱不是让你全部精通而是告诉你需要了解什么以及学习的路径。3.1 基础网络知识必须牢固这是你的地基看不懂HTTP协议后面的所有工具和技巧都是空中楼阁。HTTP/HTTPS协议必须彻底理解URL结构、请求方法GET, POST, PUT, DELETE等、状态码、请求头/响应头尤其是Cookie、Session、Origin、Referer、CSP等安全相关头部、报文主体。Web前后端基础知道HTML/CSS/JavaScript是如何在浏览器端工作的了解一点后端语言如PHP、Java、Python如何处理请求、连接数据库、渲染模板。不需要你会写但要能读懂简单的代码逻辑。同源策略与CORS理解浏览器为什么以及如何限制跨域请求这是很多前端安全问题的根源。3.2 信息收集漏洞挖掘的“雷达系统”信息收集的广度和深度直接决定了你能发现多少攻击面。这步做得好事半功倍。子域名发现工具subfinder,amass,assetfinder 以及在线平台如censys,fofa,shodan。技巧除了常规扫描别忘了检查域名的DNS解析记录A, AAAA, CNAME, MX, TXT。TXT记录里可能有SPF配置或其他信息泄露。证书透明度日志CT Log也是发现子域名的宝库。目录与文件枚举工具dirsearch,gobuster,ffuf。字典的质量至关重要推荐使用SecLists项目中的字典并根据目标技术栈如Spring, WordPress进行定制。技巧重点寻找备份文件.bak, .old, .tar.gz、配置文件.git/, .env, config.php、管理后台/admin, /manage、API文档/swagger-ui, /api-docs、测试页面/test, /demo。指纹识别工具Wappalyzer(浏览器插件),whatweb,nmap脚本。目的快速识别目标使用的Web框架如Spring Boot, Django、前端框架如Vue, React、中间件如Nginx, Apache Tomcat、数据库等。知道对方用什么就能快速联想相关的历史漏洞和常见错误配置。端口与服务探测工具nmap是王者。进行全端口扫描识别开放的服务如22/SSH, 3306/MySQL, 6379/Redis, 9200/Elasticsearch。技巧非Web端口可能隐藏着管理界面或存在漏洞的服务。一个对外开放的Redis未授权访问可能比一个复杂的Web漏洞更容易拿到权限。3.3 漏洞探测与利用从理论到实践这是核心战斗环节。我将漏洞分为几大类并给出核心思路和工具。3.3.1 通用Web漏洞这类漏洞有比较固定的模式和Payload。SQL注入思路在所有用户输入点参数、Header、Cookie尝试插入、、\等特殊字符观察回显错误。使用AND 11/AND 12进行布尔盲注测试。工具sqlmap是自动化神器但切忌无脑跑。先手动确认存在注入点再用sqlmap深入获取数据。理解它的--tamper参数用于绕过WAF至关重要。新型注入关注JSON格式注入、SQL注入在NoSQL如MongoDB中的变种。跨站脚本XSS思路寻找所有将用户输入输出到页面的地方。测试scriptalert(1)/script等基础Payload。区分反射型、存储型和DOM型。工具Burp Suite的 Scanner 模块 浏览器控制台观察DOM变化。深入研究绕过技巧编码绕过、利用HTML事件、SVG/MathML标签、CSP绕过。存储型XSS的价值通常远高于反射型。跨站请求伪造CSRF思路检查关键操作修改密码、转账、添加管理员的请求是否仅依赖Cookie验证而没有使用CSRF Token、验证Referer或自定义Header。工具Burp Suite 的Generate CSRF PoC功能可以快速生成测试页面。服务器端请求伪造SSRF思路寻找功能点网络图片加载、PDF生成、远程API调用、Webhook设置等。尝试将参数值改为http://127.0.0.1:80、file:///etc/passwd或指向内部服务的地址如http://169.254.169.254/获取云元数据。绕过使用DNS重绑定、利用URL解析差异如http://foo127.0.0.1、进制/编码转换。3.3.2 业务逻辑漏洞这是“赏金猎人”的黄金矿脉自动化工具很难发现全靠人脑分析。价值高且能体现你的水平。越权漏洞水平越权修改请求中的ID参数如/user/123/profile改为/user/456/profile看是否能访问他人数据。垂直越权普通用户能否访问仅管理员可见的API或页面尝试直接拼接管理员后台URL或修改Cookie/Token中的角色标识。流程绕过顺序绕过比如支付流程是否可以不经过确认订单页面直接发起支付请求验证绕过短信/邮箱验证码是否可爆破0000-9999是否在响应包中直接返回验证成功后是否可以通过修改状态参数直接进入下一步竞争条件思路在涉及库存、余额、优惠券数量的关键操作上使用Burp Suite的Turbo Intruder或自己写Python脚本同时发起数十上百个并发请求看逻辑是否被破坏。例如“领取唯一优惠券”逻辑并发请求可能导致一张券被多人领取。输入校验漏洞负数支付金额为-0.01元余额是否增加超大数数量字段传入9999999999是否会导致整数溢出或程序异常特殊字符用户名中传入换行符\n在后续的日志、导出功能中是否会引发问题3.3.3 组件与配置漏洞框架/中间件漏洞通过指纹识别结果搜索相关组件的历史CVE漏洞。例如Spring Cloud Function SpEL表达式注入、Log4j2、Fastjson反序列化等。关注github.com/projectdiscovery/nuclei-templates这里有海量的已知漏洞POC模板。配置错误目录遍历/static/../../etc/passwd敏感文件泄露.git目录暴露导致源码泄露/actuator/health、/actuator/env等Spring Boot Actuator端点未授权访问。CORS错误配置Access-Control-Allow-Origin: *可能导致敏感数据被恶意网站窃取。HTTP方法滥用开启PUT、DELETE等方法可能导致文件上传或删除。3.4 核心工具链详解Burp Suite (Professional)瑞士军刀。核心模块Proxy抓包改包、Repeater重放请求、Intruder爆破枚举、Scanner主动扫描、Collaborator用于检测盲注、SSRF等外部交互漏洞。熟练掌握Repeater和Intruder是入门的关键。浏览器开发者工具 (F12)你的另一双眼睛。Network标签看所有请求Sources标签看前端源码Console标签执行JS调试Application标签看Cookie、LocalStorage。Nmap不仅仅是端口扫描。使用-sV探测服务版本-sC运行默认脚本-A进行激进扫描。--script参数可以调用丰富的漏洞检测脚本。命令行三剑客curl手动发送HTTP请求、jq处理JSON响应、grep/awk过滤文本。在自动化信息收集和简单漏洞验证时它们比图形化工具更高效。4. 实战流程一次完整的漏洞挖掘之旅光说不练假把式。我们模拟一次对某个虚构在线教育平台edu.example.com的挖掘过程。4.1 第一阶段广撒网式信息收集子域名枚举subfinder -d edu.example.com -silent | tee subdomains.txt amass enum -passive -d edu.example.com subdomains.txt # 去重后我们得到了edu.example.com, api.edu.example.com, admin.edu.example.com, exam.edu.example.com, static.edu.example.com端口扫描与服务识别nmap -sV -p- --min-rate 1000 -iL subdomains.txt -oA nmap_scan发现admin.edu.example.com:8080运行着Apache Tomcat/8.5.35。Web目录扫描ffuf -u https://edu.example.com/FUZZ -w /path/to/seclists/Discovery/Web-Content/common.txt -fc 403,404发现/backup.zip,/phpinfo.php(危险信号)。指纹识别Wappalyzer显示主站使用ThinkPHP 5.0。立刻在脑中拉响警报ThinkPHP有多个历史RCE漏洞。4.2 第二阶段重点目标深度探测检查admin.edu.example.com:8080访问发现是Tomcat默认管理页面尝试弱口令admin/admin、tomcat/tomcat未果。但发现manager/html路径存在同样需要认证。检查主站ThinkPHP访问/index.php?scaptcha验证是否存在已知的ThinkPHP 5.x远程代码执行漏洞。使用公开POC测试发现该路径已被拦截但返回了一个独特的错误页面说明该路由是存在的可能只是被WAF拦截。分析exam.edu.example.com这是一个在线考试系统。快速功能遍历注册、登录、参加考试、查看成绩。4.3 第三阶段漏洞挖掘与验证在考试系统我关注“查看成绩报告”功能。抓包使用Burp抓取查看成绩报告的请求GET /exam/report?exam_id12345user_id1001。越权测试将user_id参数修改为1002同班其他同学重放请求。成功返回了用户1002的详细成绩报告这是一个典型的水平越权漏洞。逻辑漏洞挖掘在“支付购买课程”环节抓取支付请求。发现请求体为{“course_id”: “a1b2”, “price”: 299, “coupon_code”: “”}。我尝试将price改为0.01返回“价格不匹配”。尝试改为-1返回“价格无效”。尝试改为1远低于原价请求竟然成功了服务器只验证了价格大于0却没有和课程原价比对。接着我尝试在支付成功后、但课程还未开通的瞬间有一个“处理中”状态并发发起退款请求同时继续访问课程视频。发现了一个时间窗口可以免费观看课程。这是一个业务逻辑漏洞价格校验不严和潜在的竞争条件漏洞。4.4 第四阶段编写高质量漏洞报告这是换取赏金的最后一步也是最重要的一步之一。报告写不好漏洞可能被降级或拒绝。标题清晰明了。[edu.example.com] 在线考试系统成绩报告接口存在水平越权访问漏洞漏洞等级根据漏洞危害客观自评高危、中危、低危。水平越权通常中危支付逻辑漏洞可能高危。漏洞详情目标URLhttps://exam.edu.example.com/exam/report请求包完整粘贴HTTP请求包括Cookie。复现步骤一步一步像教程一样清晰。使用账号Auser_id: 1001登录考试系统。完成一次考试进入成绩报告页面。使用Burp Suite拦截GET /exam/report?exam_id12345user_id1001请求。将参数user_id修改为1002。转发请求可成功查看用户1002的私有成绩报告。漏洞证明截图截图截图包含修改参数的请求和成功看到他人数据的响应页面。修复建议给出具体方案。“建议在服务端对user_id进行强制校验确保当前登录用户只能访问属于自己的报告数据。可参考代码if (current_user_id ! request.user_id) { return forbidden(); }”5. 进阶技巧与深度思考当你掌握了基础漏洞的挖掘方法后下面这些思路能帮你找到更高价值、更隐蔽的漏洞。5.1 漏洞链的构建单个漏洞可能危害有限但组合起来威力巨大。案例首先通过一个信息泄露漏洞如JS文件泄露内部API地址internal-api.corp.com然后利用一个SSRF漏洞在某个功能点可发起内部请求让服务器去访问internal-api.corp.com/admin/deleteAllUsers。这就将信息泄露和SSRF组合成了一个新的高危漏洞。思维时刻思考“如果我有一个X漏洞我能用它来做什么能否为另一个漏洞创造条件”5.2 关注新型攻击面GraphQL API越来越多的应用使用GraphQL。关注其自省Introspection功能是否关闭是否存在DoS通过复杂嵌套查询耗尽资源以及传统的注入点。WebSocket实时通信中的漏洞如认证绕过、消息篡改、DoS。桌面/移动端应用很多应用的业务核心在客户端通过抓包配置代理证书分析其与服务器的通信协议常能找到加密薄弱、逻辑校验在客户端等问题。第三方集成OAuth登录回调、支付回调、Webhook等。攻击者能否伪造回调能否利用回调进行SSRF或开放重定向5.3 自动化与效率提升手动测试是根本但自动化能解放你去做更有价值的思考。自定义扫描器用Python的requests库编写脚本自动化测试批量目标的某个特定漏洞如某个ThinkPHP的特定路径。工作流整合使用nuclei这类工具将信息收集subfinder, httpx的结果作为输入自动进行已知漏洞的检测。Burp插件开发如果你熟悉Java或Python可以为Burp编写插件自动化你的测试逻辑。比如自动检测所有参数是否可进行越权测试。6. 常见问题、避坑指南与心态建设这条路坑很多这里分享一些血泪教训。6.1 技术性常见问题问题可能原因与排查思路解决方案/建议Burp抓不到HTTPS包浏览器未正确配置代理或未安装Burp的CA证书。1. 确保浏览器代理设置为127.0.0.1:8080。2. 访问http://burp下载并安装CA证书到“受信任的根证书颁发机构”。提交的漏洞被判定为“重复”或“已知”别人已经提交过了。信息收集要快关注新目标、新功能。在提交前可以在平台的已公开漏洞中搜索关键词看是否已被报告。扫描器被WAF封禁IP扫描频率过高、特征明显。1. 降低扫描速率设置延迟。2. 使用随机User-Agent。3. 使用代理池需谨慎确保合规。4.最佳实践以手动测试为主扫描为辅。无法复现漏洞环境差异、步骤不清、漏洞已被临时修复。1. 报告步骤必须极其详细包含所有输入和上下文。2. 录制屏幕视频是最有力的证据。3. 在测试时及时保存所有请求响应数据包。挖不到漏洞感到沮丧目标太硬、方法不对、经验不足。1.调整目标换一个更容易的目标。2.转变思路从通用漏洞转向业务逻辑漏洞。3.学习案例多读其他优秀白帽子的漏洞报告。6.2 非技术性“大坑”违反规则这是最严重的错误。绝对不要进行DDoS攻击、暴力破解核心账号、使用自动化工具对生产环境进行高负荷扫描、测试非授权资产、窃取或篡改真实用户数据。这会导致账号被封禁甚至承担法律责任。漏洞报告质量差描述模糊、步骤缺失、没有截图。审核人员每天看大量报告低质量报告很可能被直接忽略或降级。把你当成审核员想想什么样的报告能让你一眼看懂并认可漏洞。沟通态度问题与SRC运营人员沟通时保持专业和礼貌。即使对漏洞评级有异议也应基于技术细节进行理性讨论。6.3 心态与持续学习漏洞挖掘是一场持久战心态比技术有时更重要。保持耐心与好奇心可能连续几天一无所获但一个灵光乍现就可能发现一个高危漏洞。把每次测试都当作一次解谜游戏。建立知识体系不要零散地学。可以按漏洞类型如专门研究一个月SSRF、按技术栈如专门研究Spring Security安全配置进行主题式深度学习。动手实践及时复盘在合规的靶场如DVWA, WebGoat, PortSwigger的Web Security Academy练习。每挖到一个漏洞或错过一个漏洞都要复盘整个过程我是怎么发现的为什么之前没发现下次如何改进融入社区关注安全社区、博客、Twitter上的安全研究员学习他们的思路和技巧。这条路没有真正的“精通”只有不断前进。每一个你认真提交的漏洞都在让网络世界变得更安全一点同时也在为你自己的能力和信誉添砖加瓦。从今天起从一个简单的目标开始打开Burp Suite开启你的“赏金猎人”之旅吧。记住最强的工具永远是你善于观察和思考的大脑。