1. 漏洞挖掘实战清单概述
在网络安全领域,漏洞挖掘是最基础也最核心的技能之一。这份实战清单精选了10个最具代表性的漏洞类型,它们在实际渗透测试中出现频率高达90%以上。不同于理论教材,这里每个案例都来自真实环境,包含完整的攻击链和防御方案。
我从事渗透测试工作8年,发现很多安全从业者在漏洞挖掘时容易陷入两个误区:要么只关注高端复杂的0day漏洞,要么停留在基础理论层面无法落地。这份清单正是为了弥合这个断层,让你掌握从发现到利用再到防御的完整闭环。
2. SQL注入漏洞实战
2.1 基础注入原理与检测
SQL注入的本质是通过构造特殊输入改变原始SQL语句逻辑。以数字型注入为例,当看到URL参数如id=1时,可以尝试以下测试步骤:
id=1' -- 测试单引号闭合 id=1 and 1=1 -- 永真条件测试 id=1 and 1=2 -- 永假条件测试关键技巧:使用
--注释符时注意后面要加空格,否则在某些数据库可能不生效
2.2 高级绕过技术
现代WAF设备会检测常见注入特征,需要特殊绕过手法:
编码绕过:使用URL编码、十六进制编码等
%27%20OR%201=1--%20等价函数替换:
SELECT user FROM users WHERE id=1 || 1=1注释分割:
SELECT/*绕过*/user FROM users WHERE id=1--
2.3 实战案例:皮卡丘靶场注入
在皮卡丘靶场的搜索框输入:
' union select 1,database()--通过逐步增加select字段数,最终获取数据库名、表名和敏感数据。
3. XSS漏洞攻防实战
3.1 基础XSS注入点
最常见的反射型XSS测试payload:
<script>alert(1)</script> <svg/onload=alert(1)>注意:实际测试时建议使用无害的
alert(document.domain)代替敏感操作
3.2 绕过过滤技巧
当遇到尖括号转义时,可以尝试:
"onmouseover=alert(1)// javascript:alert(1)在CTFshow等靶场中,可能需要组合使用HTML实体编码:
<script>alert(1)</script>3.3 防御方案对比
| 防御方案 | 优点 | 缺点 |
|---|---|---|
| 输入过滤 | 实现简单 | 可能被绕过 |
| 输出编码 | 更安全 | 性能开销 |
| CSP策略 | 最彻底 | 配置复杂 |
4. JWT安全漏洞
4.1 常见攻击手法
- None算法攻击:修改alg为none绕过签名验证
- 密钥爆破:使用弱密钥字典爆破
- KID注入:通过kid参数实现路径遍历
4.2 实战检测步骤
- 获取JWT令牌
- 使用jwt.io解码
- 尝试修改payload后重放请求
- 测试不同算法类型
重要提醒:永远不要在前端存储未加密的JWT
5. 文件上传漏洞
5.1 绕过文件类型检测
- 修改Content-Type:
Content-Type: image/jpeg - 双扩展名绕过:
shell.php.jpg - 00截断:
shell.php%00.jpg
5.2 防御深度方案
- 白名单校验文件头魔数
- 随机重命名上传文件
- 存储在非web目录
6. CSRF漏洞利用
6.1 基础攻击模型
构造恶意页面包含:
<img src="http://victim.com/transfer?to=hacker&amount=1000">6.2 防御方案演进
| 方案 | 有效性 | 实现成本 |
|---|---|---|
| Referer检查 | 中等 | 低 |
| Token验证 | 高 | 中 |
| SameSite Cookie | 最高 | 低 |
7. SSRF漏洞挖掘
7.1 内网探测技巧
利用URL参数访问内网服务:
http://victim.com/proxy?url=http://192.168.1.17.2 绕过限制方法
- 使用不同协议:
dict://, gopher:// - 域名重绑定
- 短网址跳转
8. 反序列化漏洞
8.1 Java反序列化
使用ysoserial生成payload:
java -jar ysoserial.jar CommonsCollections1 "cmd" > payload.bin8.2 PHP反序列化
典型利用链构造:
O:4:"User":2:{s:8:"username";s:5:"admin";s:7:"isAdmin";b:1;}9. 逻辑漏洞挖掘
9.1 越权访问
- 水平越权:修改ID参数访问他人数据
- 垂直越权:普通用户访问管理员功能
9.2 业务逻辑缺陷
- 无限优惠券漏洞
- 竞态条件漏洞
- 订单金额篡改
10. 信息泄露漏洞
10.1 常见泄露点
- 备份文件:
.bak, .swp, .git - 错误信息泄露
- 目录列表
10.2 自动化扫描
使用工具快速发现:
ffuf -w wordlist.txt -u http://target.com/FUZZ11. 漏洞修复与防御
11.1 安全编码规范
- 所有输入视为不可信
- 最小权限原则
- 深度防御策略
11.2 自动化检测方案
- SAST静态扫描
- DAST动态测试
- IAST交互式检测
12. 实战经验总结
在DVWA靶场练习时,我发现很多初学者容易犯以下错误:
- 忽略错误信息的价值
- 没有系统性地测试所有输入点
- 过度依赖自动化工具
建议按照以下流程进行漏洞挖掘:
- 信息收集 → 2. 输入点枚举 → 3. 手工测试 → 4. 工具验证 → 5. 报告编写
最后分享一个真实案例:在某次渗透测试中,通过组合使用JWT算法漏洞和业务逻辑缺陷,最终实现了从普通用户到超级管理员的权限提升。这个案例告诉我们,真正的安全威胁往往来自多个中低危漏洞的组合利用。