文章总结: 该文档总结了SQL注入、RCE、XSS等十大常见Web安全漏洞,详细剖析了其产生原因、攻击原理与危害,并提供了参数化查询、输入过滤等具体防御措施。内容结构清晰,涵盖漏洞全生命周期管理,具备较高参考价值,适合开发者与安全人员学习。 综合评分: 78 文章分类: WEB安全,漏洞分析,安全建设,安全开发
漏洞原理
攻击者上传一个伪装成合法文件的恶意脚本
绕过前端或简单扩展名/MIME检查
上传的文件被存储在web服务器的可访问目录,如web的根目录或其子目录
攻击者直接访问上传的恶意脚本
漏洞危害
- WebShell植入: 完全控制Web服务器。
- 网站挂马: 传播恶意软件。
- 钓鱼: 上传伪装成正常页面的钓鱼页面。
- 拒绝服务: 上传超大文件耗尽磁盘空间。
- 配合其他漏洞: 如配合文件包含漏洞执行恶意代码。
防御措施
1.文件内容检查:检查文件内容的真实类型,与扩展名和MIME类型匹配
2.设置白名单:只允许必需的安全扩展名,禁止脚本扩展名
3.重命名文件:使用随机生成的文件名,和安全的扩展名,避免用户控制
4.安全存储文件 :
将上传的文件存储在web根目录之外的专用目录
通过后端脚本代理访问文件,避免直接执行
如果必须web访问,配置web服务器禁止执行上传目录中的脚本
5.设置文件大小限制
6.扫描恶意内容:对上传的图片,文档等进行病毒,恶意代码扫描
7.禁用危险执行权限:确保上传目录无脚本执行权限
文件包含漏洞
产生原因
应用程序使用用户可控的输入动态包含文件(如 配置文件,模版,本地化文件)
包含函数(如PHP的include(), require(), include_once(), require_once())未对用户输入 进行严格的路径限制和过滤
漏洞原理
本地文件包含(LFI):攻击者利用包含机制,通过路径遍历或其他技巧,包含服务器本地的敏感文件(如/etc/passwd, 配置文件, 日志文件, 源代码)
远程文件包含(RFI):包含并执行远程恶意脚本,等同于RCE
配合其他漏洞:如配合文件上传(上传恶意文件后包含执行)或日志注入(向日志写入PHP代码后包含日志文件)实现RCE
漏洞危害
- 远程代码执行 :攻击者可以通过包含恶意文件来在服务器上执行任意代码,从而控制整个服务器系统。
- 敏感信息泄露 :可以获取服务器上的敏感信息,如数据库连接信息、配置文件等。
- 网站被篡改 :篡改网站内容,插入恶意链接、广告或其他有害信息。
- 拒绝服务攻击 :可能引发服务器资源耗尽,导致拒绝服务攻击。
防御措施
1.严格过滤用户输入:
禁止路径遍历字符(../, ..\, %00 - 空字节截断需注意PHP版本)
将输入限制为特定的目录,用basename()获取文件名
添加固定前缀和后缀,(如include('./templates/' . $userInput . '.php');)
2.白名单控制:建立允许包含的文件名或路径的白名单,避免引用外部或系统文件
3.禁止危险函数 :在代码中禁用或限制使用可能导致文件包含的危险函数,如 PHP 中的 include、require 等
4.最小化文件权限:确保服务器上的文件权限最小化,避免攻击者通过文件包含漏洞获取或修改敏感文件
XXE (XML外部实体漏洞)
产生原因
应用程序解析用户可控的XML输入
xml解析器默认启用了外部实体引用功能,且未进行安全配置
漏洞原理
xml允许在文档类型定义实体,外部实体可以引用外部文件或URL
攻击者在提交的XML数据中定义恶意外部实体,如)
当服务器解析该xml时,会尝试加载并解析这些外部实体
导致攻击者能够读取服务器本地文件 ,发起ssrf请求,在某些情况下导致拒绝服务
漏洞危害
- 敏感信息泄露 :攻击者可读取服务器本地的敏感文件,如配置文件、数据库文件、密码文件等,获取其中的敏感信息,如数据库连接信息、管理员密码等,进而进一步渗透系统。
- 远程代码执行 :在某些情况下,攻击者可以利用 XXE 漏洞,在服务器上执行任意代码,完全控制服务器系统。
- 拒绝服务攻击 :攻击者可以构造恶意的 XML 文档,导致 XML 解析器在解析过程中消耗大量资源,引发服务器资源耗尽,从而无法正常响应服务请求,导致拒绝服务攻击。
- 数据篡改 :攻击者可以篡改 XML 文档中的数据,影响应用程序的正常逻辑和数据处理,导致数据不一致或错误。
防御措施
1.禁用外部实体:在xml解析器中显式禁用外部实体和DTD处理
PHP: 使用libxml_disable_entity_loader(true);禁用外部实体加载
Java: 设置DocumentBuilderFactory的setFeature("http://apache.org/xml/features/disallow-doctype-decl", true) 和 setFeature("http://xml.org/sax/features/external-general-entities", false) 等。
Python (lxml): parser = etree.XMLParser(resolve_entities=False, no_network=True)
2.使用更安全的数据格式:比如JSON格式
3.输入过滤:对用户提交的 XML 数据进行严格的验证和过滤,确保其不包含恶意的外部实体定义或其他危险内容。在服务端过滤xml数据中的和声明,但是此条容易被绕过
4.限制文件访问权限:在服务器上,合理设置文件的访问权限,避免应用程序有不必要的文件读取权限
5.使用安全的解析库 :优先选择安全、可靠的 XML 解析库,并确保及时更新解析库到最新版本,以获取最新的安全修复和防护功能
6.WAF: 配置WAF规则拦截包含DOCTYPE或ENTITY的请求
越权访问漏洞
产生原因
应用程序未在服务端对每个请求进行有效的权限验证。
过度依赖前端隐藏或禁用UI元素进行权限控制。
权限验证逻辑存在缺陷(如仅验证角色未验证资源所属)。
使用可预测的标识符(如连续用户ID、订单号)
漏洞原理
水平越权:用户A能够访问或操作属于用户B的同级别资源(如查看/修改用户B的订单、个人信息)。
垂直越权: 普通用户能够访问或执行需要更高权限(如管理员)才能访问的功能或资源(如访问管理后台、执行管理操作)。
攻击者通过修改请求参数(如URL中的ID、请求体中的对象ID)、直接访问未受保护的高权限URL、或利用功能逻辑缺陷来绕过权限检查。
漏洞危害
- 数据泄露: 访问他人敏感信息。
- 数据篡改/删除: 修改或删除他人数据。
- 未授权操作: 执行非授权的业务操作(如代他人支付、转账)。
- 权限提升: 获取管理员权限。
- 业务逻辑被破坏。
防御措施
1.服务端强制权限验证: 所有涉及数据访问或业务操作的请求,必须在服务端执行权限检查(基于用户角色、权限组和资源所有权)。
2.最小权限原则: 默认拒绝所有,显式授予必要权限。
3.使用不可预测的标识符: 如UUID、GUID代替连续数字ID。
4.避免在前端进行权限控制: 前端隐藏/禁用只是UI优化,后端必须有验证。
反序列化
产生原因
应用程序反序列化用户可控的或来自不可信来源的序列化数据。
被反序列化的类中存在危险方法(如构造函数construct()、析构函数destruct()、魔术方法wakeup(), __toString()),这些方法在反序列化过程中会被自动调用。
类中的方法或属性可能被用来执行任意代码、文件操作、发起网络请求等。
漏洞原理
序列化:将对象状态转换为可存储/传输的格式(字节流、字符串)。
反序列化:将序列化数据还原为内存中的对象。
攻击者构造一个精心设计的恶意序列化数据。
当应用程序反序列化这个数据时,会创建攻击者指定的对象。
在对象创建和还原过程中,其危险方法会被调用,攻击者通过在序列化数据中设置特定的属性值,控制这些方法的行为,最终导致任意代码执行或其他恶意操作。
漏洞危害
- 远程代码执行: 最常见和最严重的危害。
- 权限提升: 执行高权限操作。
- 文件操作: 读取、写入、删除文件。
- 拒绝服务: 通过构造特定对象耗尽资源。
- 绕过安全机制。
防御措施
1.避免反序列化不可信数据: 使用其他数据交换格式,如JSON。
2.签名与验证: 对序列化数据进行数字签名(如HMAC),在反序列化前验证数据完整性和来源。
3.严格类型约束: 在反序列化时,明确指定期望的具体类(白名单),而不是通用的基类。
4.代码审计: 检查自定义类中的魔术方法和其他方法是否包含危险操作。
5.运行时监控: 使用安全工具监控反序列化操作和潜在的危险行为。
6.使用安全库: 使用提供安全反序列化机制的库(如Java的SerialKiller, Jackson的@JsonTypeInfo注解配合多态类型处理)。
7.最小化暴露: 减少类中可被利用的“小工具链”。
文章内容转自网络,侵删
今日福利
为了帮助大家早日习得网络安全核心知识,快速入行网络安全圈,给大家整理了一套【2026最新网安资料】网络安全工程师必备技能资料包(文末一键领取),内容有多详实丰富看下图!
Web安全👇
渗透测试👇
安全面试题👇
代码审计👇
红队笔记👇
入门视频👇
以上所有资料获取请扫码
识别上方二维码
备注:2026安全合集
100%免费领取
(是扫码领取,不是在公众号后台回复,别看错了哦)
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:马哥网络安全 稻草人 稻草人《总结常见的web安全漏洞(产生原因 ,原理 ,危害 ,防御措施)》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论