XSS反射型和DOM型+DOM破坏

目录

第一关

源码分析

payload

第二关

源码分析

payload

第三关

源码分析

payload

第四关

源码分析

payload

第五关

源码分析

payload

第六关

源码分析

第七关

源码分析

方法一:构造函数

方法二:parseInt

方法三:location.hash

第八关

源码分析

思考

实现


靶场地址:XSS Game - Learning XSS Made Simple! | Created by PwnFunction

第一关

源码分析

他的接收参数是somebody,如果有参数就将它放进我们的innerHTML,第一关比较简单,因为innerHTML只限制了一个标签

所以我们可以利用其他标签比如img

payload
somebody=<img src=1 onerror="alert(1337)">

第二关

源码分析

这是使用jeff传参,通过eval进行一个执行,有一个定时器在一秒以后执行,它将ma name赋值给ma,然后在定时器里将ma赋值给maname.innerText,这里的漏洞出自于eval,我们可以尝试闭合的方法去执行

payload
jeff=aaa";alert(1337);"

第三关

源码分析

用wey传参,它过滤了尖括号,但是它没有过滤双引号,input里面的value值是我们用户进行上传的所以我们还是可以尝试用闭合的方式逃逸出来,这里我们可以利用onclick标签,但是这里是不允许用户交互的,所以我们可以利用onfocus焦点,但这个标签也是需要用户自己去对焦的,不过input还有一个标签叫autofocus自动对焦

payload
wey=aaaa" onfocus=alert(1337) autofocus="

第四关

源码分析

它获取一个form表单的id,两秒以后会进行action的自动提交,而form表单里的action会触发伪协议事件

payload
ricardo=JavaScript:alert(1337)

第五关

源码分析

这里它过滤了括号,反斜杠,转义字符,这里也用来innerHTML,这里过滤了括号所以我们不能用那个函数了,于是想到可以用%28和%29进行编码来运行,但是发现并不能实现,因为js是不允许编码符号的,所以想到利用location将payload变成字符串再进行编码

payload
markassbrownlee=<img src=1 onerror=location="javascript:alert%25281337%2529">

第六关

源码分析

这里过滤掉了字母和数字,这就有点难办了,我们好像前面所有的都需要字母和数字,那么我们是否可以尝试使用编码的方式进行绕过

这里有一个网站可以看到编码:JSFuck - Write any JavaScript with 6 Characters: []()!+ (kamil-kielczewski.github.io)

这里就没有数字和字母了,但是我们不能直接就拿过来用,我们还得进行urlcode编码才能使用

第七关

源码分析

这里也是过滤很多的东西,限制了长度50字符,过滤了alert这个函数,但我们可以利用其他的函数比如confirm依然可以

不过这么做就没什么意义,作者的考点也不在这

方法一:构造函数

Function(/ALERT(1337)/.source.toLowerCase())()

这里我们利用构造函数的方法将大写转换为小写后面的()立即执行

方法二:parseInt

但是必须是30以后才能转换回来10才是A,11是B依次类推到30才是t

mafia=eval(8680439..tostring(30))(1337)

方法三:location.hash

他会将#后面的值给取出来,sllice是截取函数所以可以不将#截取出来

mafia=eval(location.hash.slice(1))#alert(1337)

第八关

源码分析

这里也用到了innerHTML,那我们还是先尝试之前的img标签

发现不行他会将我们后面的给删掉,原因是这里有一个过滤框架

DOMPurify这里就很难办了,这个框架不好绕过,我们只能考虑有没有其他的方式了,那我们只能考虑下面这个函数了,它两秒会执行一个ok但又执行不了

思考

我们发现可以利用id或者name方法将标签取出来,那么这里的ok也许可以出现

他会将这个a标签的值给拿出来,所以我们用a标签里面的href他会自动调用tostring方法把他的字符串输出,而如果我们用object的继承方法它会输出的是对象

这道题我们是需要将我们输出的字符串放到我们第一个参数ok里面去

这函数可以当作字符串放进去,而a标签的href可以自动替换成字符串

boomer=<a id=ok href="javascript:alert(1337)">

但是我们并没有实现

难道我们的思路有问题?

其实并没有,而是我们并没有绕过那个框架

我们这里已经是进来了的只是后面被删了

有些白名单是他允许的,他不会删掉

实现

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

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

相关文章

【C语言】冒泡排序保姆级教学

C语言冒泡排序保姆级教学 直奔主题&#xff1a; 拿排升序举例子 第一步&#xff1a; 将想要排序的数组中数值最大的那个数排到该数组的最后 具体实现如下图&#xff1a; 第一步代码实现 for (int i 1; i < n ; i)//n为数组大小此处为4 {if (a[i - 1] > a[i])//注意越…

【java基础】IDEA 的断点调试(Debug)

目录 1.为什么需要 Debug 2.Debug的步骤 2.1添加断点 2.2单步调试工具介绍 2.2.1 Step Over 2.2.2 Step Into 2.2.3 Force Step Into 2.2.4 Step Out 2.2.5 Run To Cursor 2.2.6 Show Execution Poiint 2.2.7 Resume Program 3.多种 Debug 情况介绍 3.1行断点 3.2方…

[数据集][目标检测]锤子检测数据集VOC+YOLO格式1510张1类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;1510 标注数量(xml文件个数)&#xff1a;1510 标注数量(txt文件个数)&#xff1a;1510 标注…

美团外卖新版 web mtgsig 1.2 分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、 敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业 用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 有相关问题请第一时间头像或私信联…

Pcie学习笔记(24)

Ordering and Receive Buffer Flow Control 流量控制(FC)用于防止接收端缓冲区溢出&#xff0c;并使其符合定义的排序规则。请注意&#xff0c;请求者使用流量控制机制来跟踪代理中可用的队列/缓冲区空间&#xff0c;如图2-48所示。也就是说&#xff0c;流控制是点对点的(跨一…

集团数字化转型方案(六)

集团数字化转型方案旨在通过引入前沿技术&#xff0c;如人工智能&#xff08;AI&#xff09;、大数据分析、云计算和物联网&#xff08;IoT&#xff09;&#xff0c;全面提升业务运营效率和市场竞争力。该方案首先实现业务流程的自动化&#xff0c;减少人工干预&#xff0c;通过…

学习C语言 第十八天

第一项 C 强制类型转换 强制类型转换是把变量从一种类型转换为另一种数据类型。可以使用强制类型转换运算符来把值显式地从一种类型转换为另一种类型 (type_name) expression 一个整数变量除以另一个整数变量&#xff0c;得到一个浮点数&#xff1a; eg: #include <st…

AI在线免费数学工具:Qwen2-Math

1、Qwen2-Math https://huggingface.co/spaces/Qwen/Qwen2-Math-Demo

Python爬虫——简单网页抓取(实战案例)小白篇

Python 爬虫是一种强大的工具&#xff0c;用于从网页中提取数据。这里&#xff0c;我将通过一个简单的实战案例来展示如何使用 Python 和一些流行的库&#xff08;如 requests 和 BeautifulSoup&#xff09;来抓取网页数据。 实战案例&#xff1a;抓取一个新闻网站的头条新闻标…

【Qt】 常用控件QLCDNumber

常用控件QLCDNumber QLCDNumber是一个专门用来显示数字的控件&#xff0c;类似于“老式计算机”的效果。 QLCDNumber的属性 属性说明 intValue QLCDNumber 显⽰的数字值(int). value QLCDNumber 显⽰的数字值(double). 和 intValue 是联动的. 例如给 value 设为 1.5, i…

Docker 存储空间不足无法导入加载镜像

问题&#xff1a;在载入镜像时&#xff0c;发现docker没有空间了 解决办法&#xff1a; 更改docker的存储路径 1.添加新的硬盘 docker info #查看docker的存储位置 df -Th #查看占用以及挂载情况 发现没有可用的剩余空间&#xff0c;我们可以添加一个新的硬盘 在linu…

Java之HashMap的底层实现

Java之HashMap的底层实现 摘要HashMap的底层原理哈希值转换为数组下标节点初始化put(Object key, Object value)重写toString()get(Object key)增加泛化remove(K key) 摘要 本博客主要讲述了Java的HashMap的底层实现 HashMap的底层原理 底层原理&#xff1a;数组链表 过程…

Golang | Leetcode Golang题解之第352题将数据流变为多个不相交区间

题目&#xff1a; 题解&#xff1a; type SummaryRanges struct {*redblacktree.Tree }func Constructor() SummaryRanges {return SummaryRanges{redblacktree.NewWithIntComparator()} }func (ranges *SummaryRanges) AddNum(val int) {// 找到 l0 最大的且满足 l0 < val…

Elasticsearch 使用误区之四——不合理的使用 track_total_hits

0、企业级实战问题 在使用 Elasticsearch 进行搜索时&#xff0c;我们常常关心匹配查询的文档总数而将 track_total_hits 设置为 true&#xff0c;如下截图所示&#xff0c;在数据量非常大的情况下这种检索导致的问题是&#xff1a;查询特别慢&#xff0c;聚合会更慢&#xff0…

机器学习:逻辑回归实现下采样和过采样

1、概述 逻辑回归本身是一种分类算法&#xff0c;它并不涉及下采样或过采样操作。然而&#xff0c;在处理不平衡数据集时&#xff0c;这些技术经常被用来改善模型的性能。下采样和过采样是两种常用的处理不平衡数据集的方法。 2、下采样 1、概念 下采样是通过减少数量较多的类…

MaxKB(二):Ubuntu24.04搭建maxkb开发环境

接上文&#xff1a;windows10搭建maxkb开发环境&#xff08;劝退指南&#xff09; 上文在windows10环境搭建maxkb开发环境遇到各种坑&#xff0c;后面就转战ubuntu平台&#xff0c;果然比较顺利的完成开发环境搭建。当然遇到相关的问题还是可以参考上文《windows10搭建maxkb开发…

Stable Diffusion赋能“黑神话”——助力悟空走进AI奇幻世界

《黑神话&#xff1a;悟空》是由游戏科学公司制作的以中国神话为背景的动作角色扮演游戏&#xff0c;将于2024年8月20日发售。玩家将扮演一位“天命人”&#xff0c;为了探寻昔日传说的真相&#xff0c;踏上一条充满危险与惊奇的西游之路。 同时&#xff0c;我们还可以借助AI绘…

向量数据库Faiss的搭建与使用

​ ​ 您好&#xff0c;我是程序员小羊&#xff01; 前言 向量数据库在处理大量高维数据时非常有用&#xff0c;尤其在机器学习、推荐系统、图像检索和自然语言处理等领域。Faiss是 Facebook AI Research (FAIR) 开发的一款高效的开源向量数据库&#xff0c;专注于大规模、高维…

SpringBoot整合Sharding-JDBC分库分表

SpringBoot整合Sharding-JDBC分库分表 本文介绍SpringBoot使用当当Sharding-JDBC进行分库分表。 1、有关Sharding-JDBC 有关Sharding-JDBC介绍这里就不在多说&#xff0c;之前Sharding-JDBC是当当网自研的关系型数据库的水平扩展框架&#xff0c;现 在已经捐献给Apache&…

macOS安装搭建python环境

安装Homebrew apt-get是一个常见于Debian和Ubuntu等基于Linux的操作系统中的包管理工具&#xff0c;用于安装、更新和移除软件包。然而&#xff0c;macOS使用的是Homebrew或者MacPorts等其他的包管理工具&#xff0c;并不使用apt-get。 如果你想在macOS上使用类似apt-get的功…