实战-SRC从入门到精通超详细分析
字数 3994 2025-10-18 11:17:50

SRC漏洞挖掘实战:从入门到精通超详细指南

文档说明

本文档基于一篇高质量的实战经验总结,系统性地阐述了黑盒与白盒环境下挖掘SRC漏洞的思路、技巧和流程。内容涵盖前端挖掘、后端渗透、权限绕过、供应链攻击等多个维度,适用于安全研究人员、渗透测试工程师及SRC漏洞挖掘爱好者。


第一章:核心挖掘思想

在开始具体技术之前,必须建立正确的挖掘思路,这将决定你的效率和成功率。

  1. 后台优于前台:后台功能通常涉及核心数据和操作,漏洞危害更大,挖掘成功率也更高。
  2. 白盒优于黑盒:拥有源代码(白盒)可以进行深入的代码审计,发现逻辑和隐藏漏洞的概率远大于单纯的黑盒测试。
  3. 供应链攻击是“大杀器”:当单个目标难以突破时,转而攻击其使用的第三方系统、组件或框架。由于一套系统可能被成千上万个网站使用,一个漏洞的发现意味着可能批量攻破大量目标。
  4. 不放过任何细节:每一个参数、数据包、JS文件、Cookie都可能是突破口。测试要全面,思维要发散。

第二章:前端入口挖掘与信息收集

面对一个Web应用,尤其是只有登录框的站点,信息收集是第一步,也是至关重要的一步。

2.1 登录框常规测试

  • 弱口令爆破:使用常见用户名/密码组合(admin/admin, test/test等)进行尝试。
  • SQL注入:对用户名和密码参数进行常规注入测试。
  • 密码重置漏洞:测试“忘记密码”功能,常见漏洞包括:修改响应包状态、短信验证码爆破、邮箱劫持、用户身份标识可篡改(如将userID=正常用户改为userID=管理员)等。

2.2 寻找隐藏功能接口

登录框只是入口,很多关键功能接口并未在页面上显示,需要通过以下方式发现:

  • JS文件分析:使用浏览器开发者工具(F12)的“Network”和“Sources”面板,查看加载的JS文件。
    • 关键词搜索:在JS文件中搜索 api, url, path, router, register, upload, delete, admin, getUser, list 等关键词,寻找接口路径。
    • 注意异步加载:有些接口路径是在JS运行时通过异步请求动态加载的,不会直接出现在静态JS代码中。此时需要仔细分析网络请求,或使用工具(如原文提到的“转子女神”,可能指代某种爬虫或扫描器)对站点进行深度爬取,以发现隐藏接口。

2.3 利用“熊猫头”等工具

“熊猫头”可能是指类似 Burp SuiteTarget 模块或 Site map 功能,或者是专门的接口扫描工具。它能自动爬取网站并列出所有发现的接口和文件。对这些接口进行批量测试(如未授权访问、越权)是高效的手段。


第三章:常见漏洞类型实战挖掘

3.1 越权漏洞

这是最常见的逻辑漏洞,分为水平越权和垂直越权。

  • 挖掘思路:关注所有涉及用户标识(ID、用户名、手机号、一卡通号等)的操作。
  • 实战案例
    1. 参数篡改:在修改资料、查看订单、上传文件等功能的请求包中,寻找如 userID, id, YKTJH(一卡通号)等参数。修改其为其他用户的标识,观察是否能操作他人数据。
    2. ID遍历:如果某个功能(如/api/address/123)的URL或参数中包含顺序数字ID,尝试遍历这些ID(如123, 124, 125...)来访问未授权数据。
    3. 结论:只要发现一处越权,极大可能意味着整个系统存在普遍的越权问题,因为开发模式通常是统一的。

3.2 未授权访问

用户在没有登录的情况下,直接访问本应需要授权才能访问的接口。

  • 挖掘思路:对收集到的所有接口(尤其是后台接口),在未登录状态下直接访问。
  • 实战案例
    • 直接访问 GET /api/admin/userList 返回所有用户信息。
    • 直接访问 POST /api/user/add 可以添加用户。
    • 直接访问 GET /api/file/download/xxx 可以下载敏感文件。

3.3 前端漏洞

  • 存储型XSS:在所有输入点(如预约内容、个人简介、文件上传的文件名)尝试插入XSS payload,并观察在何处会被渲染执行(如后台管理页面、用户列表页)。
  • 任意文件上传
    • 首先检查是否有白名单/黑名单限制。
    • 尝试绕过:修改文件头、双后缀名(shell.jpg.php)、大小写、空格、::$DATA(Windows特性)等。
    • 如果严格限制为图片,可考虑上传图片马,并结合文件包含漏洞 getshell。
  • 任意文件下载:在文件下载功能点,通过目录遍历(../../../etc/passwd)或直接修改文件路径参数,下载服务器上的敏感文件。

3.4 SQL注入

  • 扩大测试范围:不要只测试登录框的usernamepassword
    • 测试所有参数:包括Cookie、X-Forwarded-For头、Referer头等所有用户可控的输入。
    • 案例:在Cookie中发现注入点 Cookie: userToken=1' AND '1'='1
  • 方法:使用联合查询、报错注入、布尔盲注、时间盲注等技术进行检测和利用。

第四章:高级技巧与权限绕过

4.1 路径/权限绕过

  • 路径回溯:在访问 https://target.com/a/b/c/demo.jsp 时,尝试逐级删除路径进行访问:
    • https://target.com/a/b/c/
    • https://target.com/a/b/
    • 可能会意外发现目录列表或备份文件(如 demo.jsp.bak)。
  • 分号;绕过:主要针对Java Spring框架。
    • 案例:无法访问 /admin/api/userList,但访问 /admin/api/;/userList 可能绕过权限校验。原因是Spring的getRequestURI()方法对;处理异常,导致权限检查的路径与实际路由的路径不匹配。
  • 参数操作
    • 置空或删除:对于JSON格式的请求,尝试将整个JSON内容置空 {} 或删除某些必填参数,有时会导致异常并泄露敏感信息。
    • 修改参数值:如短信轰炸漏洞,将 type=teacher_login(老师登录)改为 type=(空)或 type=student_login,可能会绕过“账号不存在”的校验,从而对任意手机号发送短信。

4.2 后台接口信息收集

当目标站前台JS无法提供足够多的接口时,采用“供应链”思维。

  1. 资产测绘:使用FoFa、Shodan等平台,搜索使用相同系统、相同标题、相同特定faviconiconhash的目标。
  2. 寻找薄弱点:从这批目标中找到一个安全防护较弱、存在弱口令或已知漏洞的站点,进入其后台。
  3. 收集路由:在该站点的后台,利用浏览器开发者工具分析JS文件,收集其所有的API路由。
  4. 反哺测试:将收集到的大量后台路由,用于测试最初的目标网站,进行未授权访问测试。因为同一系统的接口路径通常是相同的。

第五章:供应链攻击与白盒审计

这是最高效、危害最大的攻击方式,常在HW(护网行动)中使用。

5.1 黑盒层面的供应链攻击

  1. 目标识别:确定目标使用的CMS、OA、框架等(如信呼OA、用友致远等)。
  2. 资产收集:通过测绘平台批量搜集使用该系统的其他站点。
  3. 漏洞利用:在这些“兄弟”站点上寻找弱口令或已知Nday漏洞,进入后台。
  4. 拖取源码:通过后台的数据库管理、文件管理、模板编辑等功能,或结合任意文件下载漏洞,尝试下载网站的源码。
  5. 白盒审计:获得源码后,转为白盒审计,寻找前台漏洞(如SQL注入、未授权访问)或新的逻辑漏洞。
  6. 批量利用:将审计出的漏洞,用于攻击原始目标及其他使用该系统的站点。

5.2 白盒代码审计示例(以信呼OA为例)

  • 漏洞文件webmain/task/api/uploadAction.php 中的 upfileAction 方法。
  • 漏洞分析
    1. 未鉴权:该接口没有进行有效的登录状态验证,可未授权访问。
    2. 上传逻辑:接受上传文件,文件名 $_FILES['file']['name'] 被传入 $upses['oldfilename']
    3. 数据库操作:文件名经过 $this->replacefile() 处理后,直接存入数据库。如果 replacefile() 函数过滤不严,文件名可能成为存储型XSS的注入点。
    4. 漏洞验证:上传一个文件,文件名设置为XSS Payload(如 "><script>alert(1)</script>.jpg),如果后台管理员查看文件列表时文件名被原样输出,则会触发XSS。
  • 审计技巧:关注无需登录即可访问的接口(API路由),重点检查用户输入是否经过安全处理后再入库或展示。

第六章:总结与工作流

一个高效的SRC挖掘工作流可以总结如下:

  1. 信息收集:爬取站点,分析JS,收集所有可能的接口和参数。使用资产测绘扩大攻击面。
  2. 常规测试:对登录框、密码重置等通用功能进行测试。
  3. 深度测试
    • 逐个击破:对每一个接口,测试未授权和越权。
    • 全面参数测试:对每一个请求中的每一个参数(包括HTTP头)测试SQL注入、XSS、命令注入等。
    • 尝试绕过:使用路径回溯、分号绕过、参数置空等技巧尝试触发异常行为。
  4. 升级攻击:如果单一目标无果,立即转向供应链攻击,通过薄弱点获取源码进行白盒审计,再反哺黑盒测试。
  5. 报告撰写:清晰描述漏洞原理、复现步骤、请求包/响应包、危害证明(截图或视频)。

核心心法耐心、细致、思维发散、不放过任何一个细节。 真正的高手往往是在别人忽略的地方找到了突破口。


SRC漏洞挖掘实战:从入门到精通超详细指南 文档说明 本文档基于一篇高质量的实战经验总结,系统性地阐述了黑盒与白盒环境下挖掘SRC漏洞的思路、技巧和流程。内容涵盖前端挖掘、后端渗透、权限绕过、供应链攻击等多个维度,适用于安全研究人员、渗透测试工程师及SRC漏洞挖掘爱好者。 第一章:核心挖掘思想 在开始具体技术之前,必须建立正确的挖掘思路,这将决定你的效率和成功率。 后台优于前台 :后台功能通常涉及核心数据和操作,漏洞危害更大,挖掘成功率也更高。 白盒优于黑盒 :拥有源代码(白盒)可以进行深入的代码审计,发现逻辑和隐藏漏洞的概率远大于单纯的黑盒测试。 供应链攻击是“大杀器” :当单个目标难以突破时,转而攻击其使用的第三方系统、组件或框架。由于一套系统可能被成千上万个网站使用,一个漏洞的发现意味着可能批量攻破大量目标。 不放过任何细节 :每一个参数、数据包、JS文件、Cookie都可能是突破口。测试要全面,思维要发散。 第二章:前端入口挖掘与信息收集 面对一个Web应用,尤其是只有登录框的站点,信息收集是第一步,也是至关重要的一步。 2.1 登录框常规测试 弱口令爆破 :使用常见用户名/密码组合(admin/admin, test/test等)进行尝试。 SQL注入 :对用户名和密码参数进行常规注入测试。 密码重置漏洞 :测试“忘记密码”功能,常见漏洞包括:修改响应包状态、短信验证码爆破、邮箱劫持、用户身份标识可篡改(如将 userID=正常用户 改为 userID=管理员 )等。 2.2 寻找隐藏功能接口 登录框只是入口,很多关键功能接口并未在页面上显示,需要通过以下方式发现: JS文件分析 :使用浏览器开发者工具(F12)的“Network”和“Sources”面板,查看加载的JS文件。 关键词搜索 :在JS文件中搜索 api , url , path , router , register , upload , delete , admin , getUser , list 等关键词,寻找接口路径。 注意异步加载 :有些接口路径是在JS运行时通过异步请求动态加载的,不会直接出现在静态JS代码中。此时需要仔细分析网络请求,或使用工具(如原文提到的“转子女神”,可能指代某种爬虫或扫描器)对站点进行深度爬取,以发现隐藏接口。 2.3 利用“熊猫头”等工具 “熊猫头”可能是指类似 Burp Suite 的 Target 模块或 Site map 功能,或者是专门的接口扫描工具。它能自动爬取网站并列出所有发现的接口和文件。对这些接口进行批量测试(如未授权访问、越权)是高效的手段。 第三章:常见漏洞类型实战挖掘 3.1 越权漏洞 这是最常见的逻辑漏洞,分为水平越权和垂直越权。 挖掘思路 :关注所有涉及用户标识(ID、用户名、手机号、一卡通号等)的操作。 实战案例 : 参数篡改 :在修改资料、查看订单、上传文件等功能的请求包中,寻找如 userID , id , YKTJH (一卡通号)等参数。修改其为其他用户的标识,观察是否能操作他人数据。 ID遍历 :如果某个功能(如 /api/address/123 )的URL或参数中包含顺序数字ID,尝试遍历这些ID(如123, 124, 125...)来访问未授权数据。 结论 :只要发现一处越权,极大可能意味着整个系统存在普遍的越权问题,因为开发模式通常是统一的。 3.2 未授权访问 用户在没有登录的情况下,直接访问本应需要授权才能访问的接口。 挖掘思路 :对收集到的所有接口(尤其是后台接口),在未登录状态下直接访问。 实战案例 : 直接访问 GET /api/admin/userList 返回所有用户信息。 直接访问 POST /api/user/add 可以添加用户。 直接访问 GET /api/file/download/xxx 可以下载敏感文件。 3.3 前端漏洞 存储型XSS :在所有输入点(如预约内容、个人简介、文件上传的文件名)尝试插入XSS payload,并观察在何处会被渲染执行(如后台管理页面、用户列表页)。 任意文件上传 : 首先检查是否有白名单/黑名单限制。 尝试绕过:修改文件头、双后缀名( shell.jpg.php )、大小写、空格、 ::$DATA (Windows特性)等。 如果严格限制为图片,可考虑上传图片马,并结合文件包含漏洞 getshell。 任意文件下载 :在文件下载功能点,通过目录遍历( ../../../etc/passwd )或直接修改文件路径参数,下载服务器上的敏感文件。 3.4 SQL注入 扩大测试范围 :不要只测试登录框的 username 和 password 。 测试所有参数 :包括Cookie、X-Forwarded-For头、Referer头等所有用户可控的输入。 案例 :在Cookie中发现注入点 Cookie: userToken=1' AND '1'='1 。 方法 :使用联合查询、报错注入、布尔盲注、时间盲注等技术进行检测和利用。 第四章:高级技巧与权限绕过 4.1 路径/权限绕过 路径回溯 :在访问 https://target.com/a/b/c/demo.jsp 时,尝试逐级删除路径进行访问: https://target.com/a/b/c/ https://target.com/a/b/ 可能会意外发现目录列表或备份文件(如 demo.jsp.bak )。 分号 ; 绕过 :主要针对Java Spring框架。 案例 :无法访问 /admin/api/userList ,但访问 /admin/api/;/userList 可能绕过权限校验。原因是Spring的 getRequestURI() 方法对 ; 处理异常,导致权限检查的路径与实际路由的路径不匹配。 参数操作 : 置空或删除 :对于JSON格式的请求,尝试将整个JSON内容置空 {} 或删除某些必填参数,有时会导致异常并泄露敏感信息。 修改参数值 :如短信轰炸漏洞,将 type=teacher_login (老师登录)改为 type= (空)或 type=student_login ,可能会绕过“账号不存在”的校验,从而对任意手机号发送短信。 4.2 后台接口信息收集 当目标站前台JS无法提供足够多的接口时,采用“供应链”思维。 资产测绘 :使用FoFa、Shodan等平台,搜索使用相同系统、相同标题、相同特定faviconiconhash的目标。 寻找薄弱点 :从这批目标中找到一个安全防护较弱、存在弱口令或已知漏洞的站点,进入其后台。 收集路由 :在该站点的后台,利用浏览器开发者工具分析JS文件,收集其所有的API路由。 反哺测试 :将收集到的大量后台路由,用于测试最初的目标网站,进行未授权访问测试。因为同一系统的接口路径通常是相同的。 第五章:供应链攻击与白盒审计 这是最高效、危害最大的攻击方式,常在HW(护网行动)中使用。 5.1 黑盒层面的供应链攻击 目标识别 :确定目标使用的CMS、OA、框架等(如信呼OA、用友致远等)。 资产收集 :通过测绘平台批量搜集使用该系统的其他站点。 漏洞利用 :在这些“兄弟”站点上寻找弱口令或已知Nday漏洞,进入后台。 拖取源码 :通过后台的数据库管理、文件管理、模板编辑等功能,或结合任意文件下载漏洞,尝试下载网站的源码。 白盒审计 :获得源码后,转为白盒审计,寻找前台漏洞(如SQL注入、未授权访问)或新的逻辑漏洞。 批量利用 :将审计出的漏洞,用于攻击原始目标及其他使用该系统的站点。 5.2 白盒代码审计示例(以信呼OA为例) 漏洞文件 : webmain/task/api/uploadAction.php 中的 upfileAction 方法。 漏洞分析 : 未鉴权 :该接口没有进行有效的登录状态验证,可未授权访问。 上传逻辑 :接受上传文件,文件名 $_FILES['file']['name'] 被传入 $upses['oldfilename'] 。 数据库操作 :文件名经过 $this->replacefile() 处理后,直接存入数据库。如果 replacefile() 函数过滤不严,文件名可能成为存储型XSS的注入点。 漏洞验证 :上传一个文件,文件名设置为XSS Payload(如 "><script>alert(1)</script>.jpg ),如果后台管理员查看文件列表时文件名被原样输出,则会触发XSS。 审计技巧 :关注无需登录即可访问的接口(API路由),重点检查用户输入是否经过安全处理后再入库或展示。 第六章:总结与工作流 一个高效的SRC挖掘工作流可以总结如下: 信息收集 :爬取站点,分析JS,收集所有可能的接口和参数。使用资产测绘扩大攻击面。 常规测试 :对登录框、密码重置等通用功能进行测试。 深度测试 : 逐个击破 :对每一个接口,测试未授权和越权。 全面参数测试 :对每一个请求中的每一个参数(包括HTTP头)测试SQL注入、XSS、命令注入等。 尝试绕过 :使用路径回溯、分号绕过、参数置空等技巧尝试触发异常行为。 升级攻击 :如果单一目标无果,立即转向供应链攻击,通过薄弱点获取源码进行白盒审计,再反哺黑盒测试。 报告撰写 :清晰描述漏洞原理、复现步骤、请求包/响应包、危害证明(截图或视频)。 核心心法 : 耐心、细致、思维发散、不放过任何一个细节。 真正的高手往往是在别人忽略的地方找到了突破口。