1. SRC漏洞挖掘入门指南:从零基础到实战精通
十年前我第一次提交漏洞报告时,连基本的HTTP请求头都分不清楚。如今作为某平台年度排名前十的白帽子,我想把踩过的坑和总结的方法论,用最直白的方式分享给新人。这不是那种堆砌专业术语的"教科书",而是能让你真正上手挖洞的实战手册。
SRC(Security Response Center)漏洞挖掘本质上是一场攻防游戏。你需要像黑客一样思考,但遵守规则行事。常见漏洞类型包括SQL注入、XSS、文件上传、逻辑漏洞等,这些我都会用真实案例拆解。别被专业名词吓到,我会用"快递包裹"来比喻HTTP请求,用"超市储物柜"解释会话机制——保证零基础也能听懂。
2. 基础环境搭建与工具链配置
2.1 必备工具全家桶
- Burp Suite Community:抓包改包神器,社区版够用。安装后记得配置浏览器代理(127.0.0.1:8080),首次使用要下载CA证书
- Chrome开发者工具:按F12唤出,Elements和Network标签最常用。建议开启"Preserve log"防止跳转丢失请求
- Postman:API测试利器,比cURL更直观。收藏夹功能可以保存常用漏洞检测Payload
- VMware Workstation:搭建本地靶机环境。推荐下载OWASP Broken Web Apps(含Pikachu等经典漏洞平台)
注意:所有工具务必从官网下载!第三方渠道可能捆绑恶意软件。Burp不要使用破解版,会导致数据泄露。
2.2 网络环境配置技巧
家用宽带通常有动态公网IP,建议:
- 光猫改桥接模式(打运营商客服要超管密码)
- 路由器做DDNS解析(花生壳免费版够用)
- 开启端口转发用于接收反弹Shell(临时测试用3389/4444等端口)
# 快速检查本机开放端口 netstat -ano | findstr LISTENING3. 漏洞原理与实战检测手法
3.1 SQL注入漏洞挖掘
当网站直接把用户输入拼接到SQL语句时,就可能被注入。比如登录框输入:
admin' or '1'='1'--这会让SQL变成:
SELECT * FROM users WHERE username='admin' or '1'='1'--' AND password='xxx'绕过登录的经典Payload。实战检测步骤:
- 所有输入点测试单引号'看是否报错
- 使用Burp的Intruder模块批量尝试:
- 时间盲注:
1' AND sleep(5)-- - 布尔盲注:
1' AND 1=CONVERT(int,@@version)--
- 时间盲注:
- 遇到WAF时尝试混淆:
/*!11440+1*/ 代替 1 -- MySQL特性
3.2 XSS跨站脚本攻击
分为反射型、存储型和DOM型。基础检测Payload:
<script>alert(1)</script> <img src=x onerror=alert(1)>进阶技巧:
- 使用String.fromCharCode编码绕过过滤:
<script>eval(String.fromCharCode(97,108,101,114,116,40,49,41))</script> - SVG标签利用:
<svg onload=alert(1)>
3.3 文件上传漏洞
关键看服务端是否校验:
- 前端验证:改JS或直接发包绕过
- 后缀黑名单:尝试.htaccess、.php5
- 内容检测:图片马制作:
copy 1.jpg/b + shell.php/a shell.jpg - 条件竞争:连续快速上传.php临时文件
4. 逻辑漏洞挖掘实战
4.1 越权访问漏洞
- 水平越权:修改URL中的id参数访问他人数据
- 垂直越权:普通用户尝试访问/admin路径
- 接口未鉴权:直接调用API如
/api/user/delete?id=1
实战案例:某电商平台订单号递增,遍历可查看他人订单。用Burp的Sequencer分析是否可预测。
4.2 支付逻辑漏洞
- 修改价格参数:
amount=0.01 - 重复提交订单:拦截请求去掉防重放token
- 负数购买:
quantity=-1导致余额增加 - 优惠券叠加:并发请求绕过次数限制
5. 漏洞报告编写规范
优质报告包含:
- 漏洞标题:简明扼要如"某系统未授权访问漏洞"
- 风险等级:按CVSS标准评分
- 复现步骤:
- 请求包原始数据(Burp右键Copy as curl)
- 关键参数说明
- 修复建议:
- 输入过滤:参数化查询防SQL注入
- 权限校验:每个接口验证session
- 输出编码:HTML实体化防XSS
示例模板: ## 漏洞详情 **URL**: https://example.com/login **Payload**: username=admin'-- **响应**: 直接返回管理员会话cookie ## 修复建议 1. 使用PreparedStatement处理SQL 2. 错误信息统一返回"登录失败"6. 新手避坑指南
6.1 法律红线
- 未经授权不测试非SRC平台
- 发现漏洞后不拖库、不篡改数据
- 报告时隐藏敏感信息(如真实用户数据)
6.2 效率提升技巧
- 浏览器插件:
- Wappalyzer:识别网站技术栈
- HackTools:快速生成Payload
- 自动化脚本:
# 简单目录爆破 import requests for path in open('dict.txt'): r = requests.get(url+path.strip()) if r.status_code == 200: print(f"Found: {path}") - 漏洞模式记忆:
- 看到搜索框想SQL注入
- 看到上传功能想webshell
- 看到验证码想OCR识别
7. 持续进阶路线
- 每周至少挖1个真实漏洞(从教育SRC开始)
- 关注最新漏洞情报:
- Fastjson反序列化(如1.2.83版本RCE)
- Log4j远程代码执行
- 学习代码审计:
- 重点看用户输入处理逻辑
- 危险函数清单:eval()、system()等
- 参与CTF比赛:BugKu、XCTF等平台
我常用的漏洞检测流程是:信息收集→输入点枚举→Payload测试→权限提升→报告整理。记住,挖洞不是比谁工具多,而是看谁更细心。有次我通过网页源代码里的注释找到了后台地址,这种细节决定成败。