当前位置: 首页 > news >正文

XSS漏洞学习总结

XSS漏洞分类

一、反射型 XSS(Reflected XSS)

反射型 XSS 是最常见的 XSS 类型之一,也被称为 “非持久型 XSS”。其核心特点是恶意脚本不会被存储在服务器端,而是通过诱骗用户点击包含恶意脚本的链接(如 URL 参数),当服务器接收到请求后,将恶意脚本 “反射” 回用户的浏览器并执行。

典型场景
  • 搜索框:用户输入的内容直接作为 URL 参数返回在页面中,若未过滤,可能触发反射型 XSS;
  • 错误页面:当 URL 中包含错误信息参数时,若直接显示在页面上,可能被注入脚本。
特点
  • 恶意脚本仅在单次请求中生效,不会被长期存储;
  • 依赖用户主动点击恶意链接,攻击成功率相对较低;
  • 通常与社会工程学结合使用(如伪装成可信链接)。

二、存储型 XSS(Stored XSS)

存储型 XSS 也被称为 “持久型 XSS”,其核心特点是恶意脚本会被永久存储在服务器端(如数据库、评论区、用户资料等),当其他用户访问包含恶意脚本的页面时,脚本会被自动加载并执行。

典型场景
  • 论坛 / 博客评论区:攻击者在评论中插入脚本,所有查看该评论的用户都会受到影响;
  • 用户资料页:攻击者在个人简介中注入脚本,当他人查看其资料时触发;
  • 消息系统:恶意脚本被存储在私信中,接收者查看时执行。
特点
  • 恶意脚本长期存储在服务器,影响范围广(所有访问该页面的用户);
  • 攻击隐蔽性强,无需诱骗用户点击特定链接,危害更大;
  • 常见于用户可输入内容并公开展示的功能(如社交平台、电商评价)。

三、DOM 型 XSS(DOM-based XSS)

DOM 型 XSS 与前两种类型的核心区别是:恶意脚本的执行不依赖服务器的响应,而是完全在客户端的 DOM(文档对象模型)中处理。攻击者利用页面中 JavaScript 对 DOM 的操作漏洞,将恶意脚本注入到 DOM 中,导致浏览器执行。

典型场景
  • 前端路由:页面通过 URL 哈希(#后的内容)动态加载内容,若直接将哈希值插入 DOM,可能触发 DOM 型 XSS;
  • 客户端数据处理:JavaScript 从URL 参数中读取数据并渲染到页面,若未过滤,可能存在漏洞。
特点
  • 恶意脚本的注入和执行完全在客户端完成,服务器端无法感知;
  • 漏洞根源在于前端 JavaScript 代码对用户输入的处理不当,而非服务器逻辑;
  • 难以通过服务器端过滤防御,需在前端代码中加强输入验证和输出编码。

常见的绕过技巧

过滤script字符:

(1)可尝试使用大小写混合的方法绕过

<ScRiPt>alert(1)</ScRiPt>

(2)将字符转换为编码进行绕过

<scrip&#x74>alert(1)</scrip&#x74>  //用HTML实体编码替换字母(t的实体是&#x74)

 (3)利用href属性的<a>标签

<a href="javascript:alert(1)">点击我</a>
<a href="javascript&#58;alert(1)">点击我</a> //冒号用实体编码&#58

过滤“<”,“>”字符

(1)尝试使用事件属性(如onclickonerror等)

onerror=alert(1)
onclick=alert(1)

过滤alert字符

(1)可使用相同功能的函数代替

<script>confirm(1)</script> 
<script>prompt(1)</script>   
<script>console.log(document.cookie)</script>

其他特殊技巧

闭合现有标签

若输入位置处于已有标签的属性中(<input value="用户输入">),可闭合现有标签并注入新标签

/*假设输入位置:*/<input value="用户输入">,
/*输入以下内容 :*/"><script>alert(1)</script><"
/*结果变为 */<input value=""><script>alert(1)</script><">

http://www.dtcms.com/a/287310.html

相关文章:

  • 【Linux】基本指令详解(三) 指令本质、三个查找指令、打包压缩、重要热键、linux体系结构、命令行解释器
  • 数据结构 队列
  • 《计算机网络》实验报告二 IP协议分析
  • 在摄像机视图中想像在普通 3D 视口里那样随意移动
  • ROS2 通过相机确定物品坐标位置
  • 【Git】报错:git config --global http.sslBackend “openssl“
  • Java Map 常用方法大全
  • 鸿蒙蓝牙通信
  • 高压电工作业证考试核心考点:电气安全基础篇
  • 异世界历险之数据结构世界(二叉树-leetcode)
  • 开发框架安全ThinkPHPLaravelSpringBootStruts2SpringCloud复现
  • 中间件安全攻防全解:从Tomcat到Weblogic反序列化漏洞介绍
  • 【Oracle】ORACLE OMF说明
  • windows 如何安装 wsl ubuntu
  • PostgreSQL 语法详解
  • Kubernetes常用命令总结
  • 突破研究边界!探索OpenAI o3与o4-mini模型的无限可能
  • Leetcode 05 java
  • Uniapp之自定义图片预览
  • CSS面试题及详细答案140道之(81-100)
  • 深度学习图像分类数据集—六十种植物病害分类
  • 微信小程序171~180
  • 嵌入式硬件中电感的基本原理与实现详解
  • 六种经典排序算法:从原理到 Java 实现
  • LVS的简介以及架构
  • 闲庭信步使用图像验证平台加速FPGA的开发:第二十四课——图像直方图和RGB图像叠加的FPGA实现
  • 【超详细笔记】概率:中心极限定理的直观理解——样本均值为何趋近正态
  • OpenCV 官翻 2 - 图像处理
  • 聊聊接口测试Postman环境与变量的深度应用
  • 黑马点评系列问题之p70postman报错“服务器异常”