
1. 项目概述一次真实的腾讯SRC漏洞挖掘之旅最近和几个圈内的朋友聊天发现很多人对SRC安全应急响应中心漏洞挖掘既向往又畏惧。向往的是那份发现安全问题的成就感以及平台提供的丰厚奖励畏惧的是觉得门槛太高不知道从何下手担心自己技术不够。正好我前段时间花了几个月时间系统地走了一遍腾讯SRC的漏洞挖掘流程从最初的茫然无措到后来成功提交了几个中高危漏洞中间踩了不少坑也积累了一些实战心得。今天我就把这些从零到一的完整过程包括思路、工具、技巧和那些“教科书上不会写”的细节毫无保留地记录下来。这篇文章不是一份冷冰冰的教程而是一个从业者的实战复盘笔记希望能给想入门SRC漏洞挖掘的你提供一条清晰的路径和实实在在的“弹药”。简单来说SRC漏洞挖掘就是在一个经过授权的、相对安全的范围内对目标企业的产品和服务进行安全测试发现并报告潜在的安全风险。腾讯SRC作为国内顶尖的企业安全响应平台其目标资产庞大且技术栈复杂对挖掘者的综合能力是不小的考验。但别怕万事开头难只要方法对路耐心足够新手同样有机会。接下来我会按照“目标梳理 - 信息收集 - 漏洞探测 - 报告编写”这条主线结合具体的案例把每个环节掰开揉碎了讲清楚。2. 目标梳理与攻击面映射找准你的“战场”很多人一上来就急着打开扫描器对着域名一顿狂扫这其实是效率最低的做法。在腾讯这样体量的目标面前盲目扫描就像大海捞针。第一步我们必须清晰地定义“战场”在哪里也就是进行精准的目标梳理和攻击面映射。2.1 理解腾讯的业务生态与资产特征腾讯的业务线极其广泛我们可以粗略地将其分为几大块核心社交与通信微信、QQ、数字内容腾讯视频、腾讯新闻、QQ音乐、金融科技微信支付、理财通、云计算与企业服务腾讯云、游戏王者荣耀、和平精英等以及投资生态下的众多关联公司。每一块业务的资产特点、技术架构和安全水位都可能不同。我的策略是优先选择那些用户量大、业务逻辑复杂、新功能迭代快的业务线。原因很简单用户量大意味着攻击面广任何一个小问题都可能被放大业务逻辑复杂往往隐藏着更多的逻辑漏洞这类漏洞自动化工具很难发现正是手工挖掘者的优势所在新功能迭代快则可能因为开发周期紧张而引入新的安全风险俗称“新鲜出炉的漏洞”。基于这个思路我初期将重点放在了微信小程序生态、腾讯云的一些新兴服务以及部分游戏的活动页面上。2.2 资产收集的“三板斧”明确了方向接下来就是收集具体的资产。这里分享三个我常用的、层层递进的方法第一板斧官方渠道与公开信息。这是最基础也是最安全的一步。仔细阅读腾讯SRC的漏洞范围说明明确哪些资产在范围内哪些是禁止测试的比如核心支付链路、用户数据后台等。同时关注腾讯的官方开发者网站、开放平台、API文档。例如微信开放平台上有海量的小程序文档和API说明这些是分析业务逻辑的绝佳入口。另外像“腾讯云社区”、“腾讯技术工程”等公众号和博客有时会透露一些技术架构信息有助于理解其底层实现。第二板斧子域名与关联资产发现。这是扩大攻击面的关键。从一个已知的主域名如qq.com,tencent.com,weixin.qq.com出发利用工具进行子域名枚举。我常用的组合是subfinderassetfinderamass进行被动收集再配合altdns进行字典置换以发现那些可能被忽略的泛解析子域名。收集到的子域名列表需要用httpx或nuclei快速验证其存活性和标题筛选出有价值的Web服务。注意扫描的频率和并发一定要控制好避免对目标服务造成压力。我通常会设置较长的延迟并在非业务高峰时段进行。第三板斧端口服务与指纹识别。对于重要的子域名或IP需要进行更深入的端口扫描和服务识别。nmap的-sV参数可以探测服务版本结合-sC脚本扫描有时能发现一些默认配置漏洞。但更重要的是指纹识别我用Wappalyzer浏览器插件进行快速预览用whatweb或webanalyze进行批量识别。识别出框架如 React, Vue、中间件如 Nginx, OpenResty、后端语言如 Java Spring Boot, Go、组件库如 Element UI等信息能为后续的漏洞利用提供重要线索。比如识别出是 Spring Boot 应用就要立刻想到/actuator、/heapdump等敏感端点识别出某个特定版本的 jQuery就要去查是否有已知的XSS漏洞。2.3 构建你的专属攻击面地图将以上收集到的信息整理起来就是你的攻击面地图。我习惯用电子表格或 Obsidian 这样的笔记软件来管理记录每个资产的URL / IP业务描述如某游戏充值活动页技术栈指纹前端框架、后端语言、中间件、第三方库敏感功能点登录、注册、支付、文件上传、密码找回、API接口状态待测试、测试中、已提交、无漏洞这张地图不是一成不变的随着测试的深入和信息的补充它会不断演化。它的核心价值在于让你有的放矢避免在无关紧要的页面上浪费时间。3. 漏洞探测思路与手工测试的艺术有了清晰的目标就可以进入核心的漏洞探测环节。我强烈反对完全依赖自动化工具。在腾讯SRC低垂的果实早已被自动化扫描器摘得差不多了真正的价值在于深度的手工测试和对业务逻辑的理解。3.1 通用型漏洞的“条件反射”测试对于任何输入点都要养成一套条件反射式的测试流程SQL注入除了经典的、、\、and 11、and 12更要关注时间盲注和报错注入。对于JSON格式的API尝试在参数值中插入Payload。使用sqlmap时--level和--risk参数可以调高但更关键的是用--tamper脚本绕过WAF我会常备charencode、space2comment等脚本。但记住sqlmap动静大在SRC测试中要慎用优先手工验证。XSS跨站脚本不要只测scriptalert(1)/script。反射型XSS要测试所有参数包括URL参数、POST Body、Cookie、HTTP头如User-Agent,Referer。存储型XSS要寻找所有用户可控且能展示给其他用户的地方如评论、昵称、个人简介、文件上传后的文件名展示等。DOM型XSS需要仔细分析前端JavaScript代码寻找innerHTML、document.write、eval、setTimeout、location.hash等危险函数的调用以及source到sink的数据流。SSRF服务器端请求伪造寻找所有能发起网络请求的功能点如图片/文件加载、PDF生成、网页抓取、Webhook配置、从URL导入数据等。测试时先尝试请求http://127.0.0.1:80或http://localhost看是否有回显再使用Burp Collaborator或dnslog.cn这类工具来探测盲SSRF。进阶利用包括访问云元数据接口如AWS的169.254.169.254、阿里云的100.100.100.200、攻击内网脆弱的Redis或Jenkins服务等。文件上传绕过技巧是基本功如修改后缀.php-.php5,.phtml、前端校验绕过抓包改扩展名、Content-Type绕过image/jpeg、文件头绕过在真实图片后附加恶意代码、.htaccess文件攻击等。更重要的是上传后要找到文件的访问路径这可能需要结合目录遍历或信息泄露漏洞。3.2 业务逻辑漏洞挖掘者的“金矿”这才是体现技术差距的地方。业务逻辑漏洞根植于应用程序的功能设计缺陷没有通用Payload全靠对业务的理解和“脑洞”。案例一平行越权漏洞。我在测试一个腾讯云子产品的管理控制台时发现每个资源如云主机、数据库都有一个唯一的ID用于在API中标识。通过修改请求中的资源ID参数我成功访问并操作了其他用户的资源。挖掘关键在于找到所有携带ID参数的请求系统是否只在前端隐藏了入口而后端没有对“当前用户是否有权操作此ID的资源”进行校验。案例二条件竞争漏洞。在某游戏的活动页面有一个“领取限量礼包”的功能。逻辑是先查询礼包库存大于0则允许领取并减少库存。我通过Burp Suite的 Turbo Intruder 插件同时并发发送数十个领取请求导致库存校验失效成功领取了远超限量的礼包。测试要点是寻找任何涉及“检查-然后-操作”顺序的功能如支付检查余额-扣款、抽奖检查次数-抽奖、优惠券领取等用高并发请求去“挤兑”这个时间窗口。案例三密码重置逻辑缺陷。这不是简单的验证码爆破。我遇到过一个场景重置密码时第一步输入手机号获取短信验证码第二步输入验证码和新密码。问题在于第一步请求的响应包中直接返回了一个用于后续步骤的Token但这个Token的生成仅与手机号有关且有效期过长。导致攻击者可以先为自己的手机号走一遍流程拿到Token然后用这个Token去尝试重置其他用户的密码如果系统后端只用Token验证身份而不再二次确认手机号。这要求我们仔细分析每一步请求响应的关联思考每个参数的作用和生命周期。3.3 接口与API安全测试现代应用大量依赖前后端分离和API接口这里也是漏洞重灾区。未授权访问直接访问需要认证的API端点看是否会返回数据。尝试删除Cookie、Token等认证信息或者使用一个低权限用户的Token去访问高权限接口。工具上Authz和Automatic API Authorization等Burp插件可以辅助测试。参数污染与越权对API的每个参数进行增删改测试。例如一个查询“我的订单”的API可能有一个user_id参数尝试修改它。或者一个更新用户信息的API尝试添加一个is_admintrue的参数。GraphQL API测试腾讯部分新业务可能采用GraphQL。针对GraphQL要测试内省查询通过__schema获取全部类型信息、批量查询攻击通过别名一次发起大量查询导致拒绝服务、深度递归查询等。工具如GraphQLmap、InQLBurp插件非常有用。API文档泄露寻找/swagger-ui.html、/api-docs、/v2/api-docs、/doc.html等常见的API文档路径。泄露的文档不仅揭示了所有接口有时还会包含测试用例甚至未脱敏的示例数据。4. 工具链配置与高效工作流工欲善其事必先利其器。一套顺手的工具和流畅的工作流能极大提升效率。4.1 我的核心工具栈工具类别工具名称主要用途使用心得代理与抓包Burp Suite Professional全流程HTTP/S代理、重放、扫描、入侵核心中的核心Repeater和Intruder使用频率最高。项目文件定期备份。Charles / Fiddler移动端APP抓包辅助某些APP的证书绑定或双向认证可能让Burp抓包困难这些工具可作为补充。信息收集subfinder, amass, assetfinder子域名枚举配合使用结果去重。定期更新字典和API密钥如SecurityTrails, Censys。httpx, nuclei存活验证与快速指纹扫描httpx速度极快用于初步筛选。nuclei用来自定义POC和快速漏洞扫描。Waybackurls, gau获取历史URL从Wayback Machine等归档站获取目标的历史路径常能发现被遗忘的测试页面。漏洞利用sqlmapSQL注入自动化利用慎用。仅在对可疑点进行深度验证时使用且务必调低线程、增加延迟。XSStrike, dalfoxXSS自动化探测作为手工测试的补充特别是用于检测模糊测试和DOM型XSS。ffuf, wfuzz目录/参数爆破用于发现隐藏目录、文件、虚拟主机和参数。字典的质量决定结果。辅助与开发Turbo Intruder (Burp插件)高性能并发攻击测试条件竞争、速率限制绕过、批量测试的利器。Autorize (Burp插件)自动越权测试配置好低权限和高权限用户的会话自动测试接口越权。Collaborator Everywhere (Burp插件)自动发现SSRF等给所有经过Burp的请求自动添加Collaborator payload用于探测盲注类漏洞。Postman, InsomniaAPI测试与文档化对于复杂的API调用链用这些工具管理比Burp更清晰。笔记与协同Obsidian, Notion记录测试过程、思路、PoC结构化记录便于回溯和总结。我会为每个目标资产建立一个笔记页。4.2 一套实战工作流示例启动与配置打开Burp配置好浏览器代理和CA证书。启动Burp Collaborator服务并复制域名。打开Obsidian创建今日测试笔记。目标漫游手动浏览目标网站或APP用Burp记录所有流量。重点关注登录、注册、支付、个人中心、文件上传、搜索等功能点。边浏览边在Obsidian中记录可疑的URL和参数。主动探测将Burp的站点地图Site map中的目标域名导出为URL列表。使用httpx快速过滤出存活且返回状态码为200、302、403等的URL。将结果导入nuclei使用通用型漏洞模板进行初筛。深度手工测试针对第2步和第3步发现的高价值目标如功能复杂的页面、API接口进行深度手工测试。按照“通用漏洞条件反射”和“业务逻辑分析”的思路在Burp Repeater中逐个参数、逐个功能点进行测试。PoC固化与复现一旦发现漏洞立即在Burp中保存完整的请求-响应包。然后开启一个新的浏览器会话无痕模式不登录或使用低权限账号尝试仅用保存的PoC数据包复现漏洞。确保漏洞是可稳定复现的这是报告被接受的基础。整理与报告在Obsidian中详细描述漏洞的发现过程、影响、复现步骤。截图、数据包缺一不可。然后根据腾讯SRC的报告格式要求整理成最终的报告草稿。5. 漏洞报告撰写与提交的“隐形门槛”挖到漏洞只是成功了一半一份清晰、专业、合规的报告是获得认可和奖励的关键。很多新手在这里栽跟头。5.1 报告的核心要素一个都不能少一份合格的漏洞报告必须包含以下部分我称之为“八股文”但非常有效漏洞标题简明扼要如“【XX业务】YY功能处存在未授权访问漏洞可查看他人敏感信息”。所属厂商/产品明确写明是腾讯的哪个产品线哪个具体业务或域名。漏洞等级根据漏洞的CVSS评分或自己对影响的判断预估一个等级高危、中危、低危。可以参考腾讯SRC的定级标准。漏洞类型如SQL注入、逻辑越权、SSRF等。漏洞详情发现过程你是怎么找到这个漏洞的简要描述测试路径。漏洞位置完整的URL如果是Web。如果是API给出接口路径和方法GET/POST。请求数据触发漏洞的完整HTTP请求数据包建议用Burp的Copy as curl command或直接粘贴Raw格式。响应数据服务器返回的响应数据包特别是能证明漏洞存在的部分如数据库错误信息、其他用户数据等。漏洞证明截图包含浏览器地址栏的漏洞界面截图。视频对于逻辑复杂的漏洞如条件竞争、多步骤利用录制一个简短的GIF或MP4视频是最佳选择能直观展示利用过程。修复建议给出具体、可操作的修复方案。例如对于越权建议“在后端接口添加资源所属权校验”对于XSS建议“对用户输入进行严格的过滤或编码输出”。避免说“请修复”之类的空话。其他信息测试使用的账号如测试账号的手机号后四位、测试时间、浏览器版本等方便厂商复现。5.2 那些容易“踩雷”的细节数据脱敏报告中出现的任何真实用户数据、手机号、身份证号、Token、密钥必须进行打码或替换为示例数据如138****0000,Bearer [ACCESS_TOKEN]。这是红线绝对不能泄露真实用户隐私。PoC的破坏性证明漏洞时严禁进行任何破坏性操作。例如发现一个SQL注入用select version()或select user()证明即可绝对不要用drop table、update或delete语句。发现一个越权删除不要真的删除其他用户的数据用查看功能证明即可。描述客观精准避免使用“我觉得”、“可能”、“好像”等模糊词汇。用客观的语言描述事实。“当我提交user_id123时返回了用户A的数据当我修改为user_id456时返回了用户B的数据而后端未校验当前登录用户身份。”遵守测试范围再次强调只在SRC公布的授权范围内进行测试。不要对核心交易系统、线下基础设施、第三方合作商域名等进行测试。5.3 提交后的沟通与跟进提交报告后可以在SRC平台关注处理状态。如果报告被驳回或需要补充信息平台安全工程师通常会给出理由。此时一定要耐心、仔细阅读反馈按照要求补充材料或澄清问题。良好的沟通态度能大大提高漏洞被确认的几率。即使漏洞被认定为“重复”或“无效”也是一个学习的过程可以思考自己的测试思路和别人的差距在哪里。6. 心态、学习与持续成长最后聊聊比技术更重要的东西——心态。保持耐心与平常心挖洞是一个“广种薄收”的过程。可能连续测试一周都一无所获这非常正常。不要气馁把每一次测试都当作对技术和耐心的磨练。收获一个高质量的漏洞其价值远大于一堆低危问题。建立自己的知识体系不要满足于复现别人的Payload。每遇到一种新漏洞、新技术栈比如第一次测试 GraphQL 或 gRPC就去深入研究其原理和常见的错误配置。我习惯用笔记软件建立自己的漏洞库按类型、技术、业务场景分类不断积累自己的“武器库”。关注前沿与交流多关注安全社区如先知、Seebug、安全客、国内外安全会议BlackHat, DEF CON, KCon的议题了解最新的攻击技术和防御绕过手法。适当参与一些技术讨论但注意保护自己的测试技巧和未公开的漏洞细节。法律与道德底线时刻牢记SRC漏洞挖掘是在法律框架和授权范围内的技术活动。任何未经授权的测试行为都是非法的。我们目标是帮助厂商提升安全性共同营造更安全的网络环境而不是炫耀技术或谋取非法利益。这条路没有捷径它需要持续的热情、严谨的态度和大量的实践。从信息收集的细致入微到漏洞挖掘的灵光一现再到报告撰写的条分缕析每一个环节都凝结着挖掘者的思考与汗水。希望我的这份实战记录能为你点亮一盏灯让你在腾讯SRC乃至更广阔的安全世界里走得更稳、更远。真正的收获不仅仅是那些奖励更是在这个过程中锤炼出的、属于你自己的安全视野和问题解决能力。