实战-SRC从入门到精通超详细分析
字数 3994 2025-10-18 11:17:50
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代码中。此时需要仔细分析网络请求,或使用工具(如原文提到的“转子女神”,可能指代某种爬虫或扫描器)对站点进行深度爬取,以发现隐藏接口。
- 关键词搜索:在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,可能会绕过“账号不存在”的校验,从而对任意手机号发送短信。
- 置空或删除:对于JSON格式的请求,尝试将整个JSON内容置空
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、命令注入等。
- 尝试绕过:使用路径回溯、分号绕过、参数置空等技巧尝试触发异常行为。
- 升级攻击:如果单一目标无果,立即转向供应链攻击,通过薄弱点获取源码进行白盒审计,再反哺黑盒测试。
- 报告撰写:清晰描述漏洞原理、复现步骤、请求包/响应包、危害证明(截图或视频)。
核心心法:耐心、细致、思维发散、不放过任何一个细节。 真正的高手往往是在别人忽略的地方找到了突破口。