xss.pwnfunction.com靶机 Warmups

通关要求弹出警告框alert(1337)
没有用户交互
不能使用外链接
在chrome中测试

Ma Spaghet!

通过分析代码我们可以看到它直接用innerHTML将接收的内容赋值
但是我们不能使用<script>标签因为:HTML 5 中指定不执行由 innerHTML 插入的 <script> 标签。
所以我们可以使用:<img src=x οnerrοr=alert(1337)>或者<svg οnlοad=alert(1337)>

Jefff

我们可以看到它通过eval()函数将我们输入的内容与原定的字符进行了拼接
并设置了在一秒后使用innerText添加进页面
innertext会使我们的标签以普通字符串进行展示
但是eval()函数会将传入的字符串当做 JavaScript 代码进行执行。并且可以传入多个参数
这样我们就可以先闭合之后写入分隔符再写入我们的恶意代码之后将后面的引号注释掉
我们最终得到的代码:";alert(1337)//

Ugandan Knuckles

它将<>进行了过滤
将我们输入的内容写入了input标签的placeholder属性中
我们可以利用onfocus(聚焦)事件

我们可以看到当我们点击到输入框时输入框会高亮此时就是聚焦了
结合上边我们的分析我们得到的payload:" οnfοcus=alert(1337) aoutfocus//
首先闭合 然后添加onfocus触发的事件 aoutfocus自动进行聚焦

Ricardo Milos

submit() 是一个用于表单元素的 JavaScript 方法,用于提交表单。当调用这个方法时,它会触发表单的提交操作,就好像用户点击了表单中的提交按钮一样。
它定义了一个action然后将我们输入进行了一个提交
所以我们的payload:?ricardo=javascript:alert(1337)
它之所以写submit()是因为只有进行了提交才能触发这个action

Ah That's Hawt

我们可以看到它将我们的()`等符号进行了过滤导致我们无法使用alert()
这里我们第一时间会想到的是html实体编码

但是我们发现它貌似并没有上传成功
在 URL 中,&字符通常用作查询参数的分隔符,用于分隔不同的参数。如果我们想要在 URL 中包含 & 字符本身,而不是作为分隔符,通常需要对其进行编码。在我们提供的代码中,& 字符没有被编码,因此如果我们尝试将这段代码作为一个整体放在 URL 中进行上传,那么 URL 解析器可能会将其视为两个参数之间的分隔符,导致上传行为失败或者解析错误。
所以我们需要对&进行url编码

之后我们的payload:?markassbrownlee=<img%20src=x%20οnerrοr=alert%26%2340%3B1337%26%2341%3B>

Ligma

我们可以看到这个过滤比较狠将我们的大小写和数字都进行了过滤
这个过滤看起来让我们无计可施
jsfuck--一个很有意思的javascript特性 
JSFuck 的设计者将它称为“把代码缩小到最小的表达”,因为它使用了 JavaScript 中最少的一组字符来表示完整的代码逻辑。
我们通过百度将我们的代码进行编译

我们会得出一个非常长的payload但是我们上传后依然不行
因为我们的 + 在url中被识别成了空格
所以我们需要对这段代码进行urlcode转码

我们得到了一段巨长无比的代码

Mafia

这里显然我们的jsfuck用不了了它将特殊字符进行了过滤并且限制了payload的长度

方法1


这里我们需要用到location.hash.slice(1)
location.hash是 JavaScript 中用于获取或设置当前页面 URL 中的片段标识符部分的属性。
片段标识符是 URL 中的一个特殊部分,它以#符号开头,常被用来表示文档中的某个特定位置或片段。
获取到后我们使用slice()函数进行截取#号之后的部分
所以我们的payload:?mafia=eval(location.hash.slice(1))#alert(1337)

方法2

我们可以使用转进制的方法将我们的字符转为数字
我们payload可以写成:?mafia=eval(8680439..toString(30))(1337)
其中的数字是什么呢?

我们可以看到使用toString()后数字转为了alert
这里使用的是parseInt()

第一个参数是我们要转换的字符串,第二个参数表示的是30进制
为什么要使用30进制,我们可以想想我们的16进制是什么,是0-9 A-F
所以我们的16进制在这里只能取到F如果我们的字符中包含t这样的字符,我们就需要使用到包含t的进制数,如果我们的字符中包含z我们就需要使用36进制

方法3

它虽然过滤了小写的alert但是大写它没有过滤
但是使用大写的话我们的js是严格区分大小写的没办法执行
但是如果我们将它以大写的形式传入之后转为小写是不是就可以执行了
所以我们的payload:?mafia=eval(/ALERT(1337)/.source.toLowerCase())
也可以写一个匿名的函数:?mafia=Function(/ALERT(1337)/.source.toLowerCase())()

Ok, Boomer

这里我们可以看到它将我们的传参通过DOMPurify过滤框架给过滤了
尝试写一个恶意代码

可以看到它的过滤框架吧我们的危险字符直接删除了
但是我们看到它下面写了一个setTimeout(ok, 2000)
这有什么用呢?
我们可以利用DOMCLOBBERING(dom破坏)
我们的payload可以写成:<a id=ok href=tel:alert(1337)>
tel是在这个过滤框架的白名单中

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

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

相关文章

网络原理初识

一、IP地址 概念 IP 地址主要用于标识网络主机、其他网络设备&#xff08;如路由器&#xff09;的网络地址。简单说&#xff0c; IP 地址用于定位主机 的网络地址 。 就像我们发送快递一样&#xff0c;需要知道对方的收货地址&#xff0c;快递员才能将包裹送到目的地。 二、…

YOLOv8原创改进:原创自研head创新 | 空间上下文感知模块(SCAM)结合超轻量高效动态上采样DySample | 小目标涨点系列

💡💡💡本文独家改进:YOLOV8 head创新,1)一种超轻量高效动态上采样DySample, 具有更少的参数、FLOPs,效果秒杀CAFFE和YOLOv8网络中的nn.Upsample;2)加入空间上下文感知模块(SCAM)进一步提升检测精度; 改进结构图如下: 💡💡💡在多个数据集下验证能够涨点…

使用Unreal Engine 5创建逼真人物化身(meta human)的教程

这是一个关于使用Unreal Engine 5创建逼真人物化身(meta human)的教程视频。作者们使用PolyCam应用程序对一位名叫Angelina的女性进行了3D人体扫描,然后在Blender中清理扫描数据,并将其导入Unreal Engine 5。接着他们利用MetaHuman Creator网站进行了进一步的定制,将Angelina的…

Java中SpringBoot四大核心组件是什么

一、Spring Boot Starter 1.1 Starter的应用示例 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency><groupId>org.mybatis.sprin…

Java开发从入门到精通(一):Dubbo

目录&#xff1a; 服务注册与发现机制 服务调用 线程派发机制 1、服务注册与发现机制 Dubbo的服务注册与发现机制如下图所示&#xff1a; Dubbo中存在4类角色&#xff1a; Registry 注册中心。 Consumer 服务调用者、消费端。 Provider 服务提供者。 Monitor 监控中心。 调用…

docker学习笔记——对数据卷的一些简单命令

高级数据卷 docker volume ls&#xff1a;查看docker所有维护的数据卷。 docker volume inspect 数据卷别名&#xff1a;查看数据卷的详细信息。 docker volume rm 数据卷的别名&#xff1a;删除数据卷。 docker volume create 数据卷别名&#xff1a;创建一个别名数据卷。

Android屏幕共享-硬编码硬解码

Android屏幕共享-硬编码硬解码 说起Android之间的屏幕共享&#xff0c;第一次接触会比较陌生&#xff0c;不过大家多少有了解过ffmpeg&#xff0c;看上去是不是很熟悉&#xff1f;ffmpeg是一套处理音视频的开源程序&#xff0c;但对于C了解较少的同学&#xff0c;编译起来很复杂…

笔试题7——在数组中找出三个数字和为0的全部组合, test ok

题目描述: 在数组中找出三个数字使得它们的和为0,找出所有的这种不包含重复的组合 思路: 首先将数组元素从小到大排序,设三个元素下标i,j,k,将i从头开始遍历,j初始化为i+1,k初始化为n-1; while(j < k) 当三元素之和小于0时,j++; 当三元素之和大于0时,k–; 当三…

二维码门楼牌管理系统应用场景:社会服务与福利的智能化革新

文章目录 前言一、二维码门楼牌管理系统的基本功能二、在社会服务领域的应用三、在福利保障领域的应用四、结论 前言 在数字化浪潮的推动下&#xff0c;二维码门楼牌管理系统以其便捷、高效的特点&#xff0c;正逐渐渗透到社会服务和福利的各个领域。这一系统不仅为市民提供了…

Claude3 目前最强大模型

过内试用连接 ChatAI (whjin.cn)http://chatyy.whjin.cn/?userid51913030&typebaidu&keywordid0&bd_vid12153741466503666331 Claude 3: A new generation of AI The Claude 3 family of models represents the cutting edge of AI technology, offering unpara…

RN开发搬砖经验之-如何处理FlashList组件加载后调用scrollToIndex没有滚动指定位置

前言 如题&#xff0c;这里只能说是处理&#xff0c;起正向作用的临时方案&#xff0c;因为我也着实没搞懂这个BUG的具体原因&#xff0c;看github上有提相关的issuesFor long lists with different item types scrollToIndex does not work reliable&#xff0c;但看官方没有…

Java的基本数据类型——四类八种

目录 前言 1.整型 1.1整型变量 1.2长整型变量 1.3短整型变量 1.4字节型变量 2.浮点型 2.1双精度浮点数 2.2单精度浮点数 3.字符型 4.布尔型 前言 java的数据类型分为基本数据类型与引用数据类型,其中除了整型、浮点型、字符型、布尔型&#xff0c;即为引用数据类型…

Extended Feature Pyramid Network for SmallObject Detection

摘要 各种尺度的特征耦合会削弱小对象的性能&#xff0c;本文中&#xff0c;我们提出了具有超高分辨率金字塔的扩展特征金字塔网络&#xff08;EFPN &#xff09;&#xff0c;专门用于小目标检测。具体来说&#xff0c;我们设计了一个新模块&#xff0c;称为特征纹理转移&#…

【MySQL 系列】MySQL 起步篇

MySQL 是一个开放源代码的、免费的关系型数据库管理系统。在 Web 开发领域&#xff0c;MySQL 是最流行、使用最广泛的关系数据库。MySql 分为社区版和商业版&#xff0c;社区版完全免费&#xff0c;并且几乎能满足全部的使用场景。由于 MySQL 是开源的&#xff0c;我们还可以根…

统信os平台普通用户无法调用clockdiff的问题解决方法

问题描述 部署OceanBase 时遇到clockdiff: socket: operation not permitted 问题&#xff0c;从官网了解到可以通过setcap cap_net_rawep "$(which clockdiff)"解决 在centos平台&#xff0c;这个可以解决问题&#xff0c;但是在统信os平台失败了。。 参考: Ocea…

怎么把一个视频分割成几个?技巧在这里

在视频编辑的过程中&#xff0c;有时我们需要将一个较长的视频细分成多个部分&#xff0c;以便更灵活地进行处理、调整或分享。这个过程可以帮助我们有效管理视频内容&#xff0c;提取关键片段&#xff0c;并且适应不同的发布需求。在本文中&#xff0c;我们将深入探讨怎么把一…

【Python百日进阶-Web开发-Peewee】Day283 - Peewee 的扩展(二)apsw/sqlcipher/postgresql

文章目录 13.4 apsw&#xff0c;一个高级的 sqlite 驱动程序13.4.1 如何使用 APSW 数据库13.4.2 apsw_ext API 说明 13.5 Sqlcipher 后端13.5.1 sqlcipher_ext API 说明 13.6 Postgresql 扩展13.6.1 JSON 支持13.6.2 hstore 支持 13.4 apsw&#xff0c;一个高级的 sqlite 驱动程…

JavaScript改变this指向的三种方法

在JavaScript中&#xff0c;可以使用call()、apply()或bind()来改变函数的this指向。 1.call(): 通过调用函数并传入新的上下文对象作为参数&#xff0c;将函数内部的this关键字指向该对象。示例代码如下所示 function greet(name) {console.log("Hello " name); …

机器学习笔记 DeepFakes和换脸技术简述

一、简述 人脸检测一直是 2000 年代初的主要研究课题。差不多二十年后,这个问题基本上得到了解决,并且人脸检测在大多数编程语言中都可以作为库使用。甚至换脸技术也不是什么新鲜事,并且已经存在了好些年了。 早在2016年左右就有基于OpenCV进行面部交换的方式了,主要是基于…

第107讲:Mycat实践指南:取模分片下的水平分表详解

文章目录 1.使用取模分片水平分表2.水平分表取模分片案例2.1.准备测试的表结构2.2.配置Mycat实现范围分片的水平分表2.2.1.配置Schema配置文件2.2.2.配置Rule分片规则配置文件2.2.3.配置Server配置文件2.2.4.重启Mycat 2.3.写入数据观察水平分表效果 1.使用取模分片水平分表 平…