复现DOM型XSS攻击(1-8关)

news2024/11/15 12:23:53

目录

第一关:​

分析代码:

第二关:

分析代码:

第三关:

分析代码:

第四关:

分析代码:

第五关:

分析代码:

第六关:

分析代码:

第七关:

分析代码:

第八关:

分析代码:


使用的靶场环境在这个网站XSS Game - Learning XSS Made Simple! | Created by PwnFunctionXSS Game: Learn Cross Site Scripting (XSS) by completing challenges!icon-default.png?t=N7T8https://xss.pwnfunction.com/

第一关:

分析代码:

是将网页中一个特定 <h2> 元素的内容更新为一个字符串,通过<script> 标签中的 JavaScript 代码获取当前网页 URL 的查询参数 "somebody"。如果查询参数存在,则将其值和字符串 " Toucha Ma Spaghet!" 连接;如果不存在,则使用默认值 "Somebody"

未传参

将somebody参数设置为aaa

可以看出它根据 URL 查询参数 "somebody" 的值直接填充到 <h2> 元素的内容

同时根据它的要求:不能和用户交互,必须要弹出1337

尝试使用<script>alert(1337)</script>

很明显的可以看出这块是有标签的但是就是没有触发

通过查看官方文档发现,官方觉得innerHTML这个标签是一个危险的标签,所以禁用了这个方法,但是也只禁用了这一个方法。

使用img标签

?somebody=<img src=1 οnerrοr="alert(1337)">

成功

第二关:

分析代码:

从当前网页的 URL 中获取查询参数 "jeff" 的值。如果没有该参数,则默认值为 "JEFFF"。初始化一个空字符串变量 ma。使用 eval 函数将 jeff 的值插入到字符串中,赋值给 ma,最后是设置一个延迟 1 秒的定时器,定时器到期后将 ma 的值设置为 maname 元素的文本内容。总的来说就是从 URL 中获取参数 "jeff",生成一个字符串并在 1 秒后显示在网页上。

我们可以考虑在eval中做。

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

使用连接符-来做

?jeff=aaa"-alert(1337);-"

第三关:

分析代码:

通过URL中的查询参数提取名为wey的参数,如果没有这个参数,则使用默认值“do you know da wey?”。将wey参数中的所有尖括号去掉,在uganda这个<div>元素中插入一个文本输入框,并将其占位符设置为处理后的wey参数值。最终效果是在页面中显示一个带有占位符的文本框。

同样闭合双引号,使用onfocus和autofocus避免和用户交互

?wey=aaa" οnfοcus=alert(1337) autofocus"

第四关:

分析代码:

首先是定义一个表单,ID为“ricardo”,使用GET方法提交数据,然后在表单中添加一个文本输入框,名称为“milos”,默认值为“True”,设置表单的提交地址为当前URL中名为“ricardo”的查询参数的值,如果没有该参数,则默认为“#”,并且在2秒后自动提交表单,提交到指定的URL

这个就好办,用action中的javascript

?ricardo=javascript:alert(1337)

第五关:

分析代码:

和之前差不多,只不过通过正则表达式过滤了smith字符串中的括号、反引号和反斜杠。将处理后的 smith 内容设置为前面创建的 <h2> 标签的内部 HTML。

可以看到这关用的也是innerHTML标签,尝试使用img,发现括号被删除了

先对()进行实体编码,在对实体编码进行url编码

%26%2340%3b  ---(

%26%2341%3b  ---)

然后再使用location解析

?markassbrownlee=<img%20src=1 οnerrοr=location="javascript:alert%26%2340%3b1337%26%2341%3b">

第六关:

分析代码:

使用正则表达式将balls中的所有字母和数字替换为空字符串。最后使用eval函数执行balls中的代码。

这种类型的基本上有固定的解法,就是编码

在https://jsfuck.com/ 网站

因为在url查询字符串部分(?后面的部分)时,+通常会被解码为空格,所以我们要对这些符号再次编码

第七关:

分析代码:

这一关比前一关过滤了更多的字符串中的特定字符(包括反引号、单引号、双引号、加号、减号、感叹号和方括号)替换为下划线 。同时还限制长度在50之内,将字符串中的 alert 关键字替换为下划线,最后使用eval执行处理后的字符

使用Function构造函数,Function()可以直接执行,如果不赋值的话在后加一个括号Function()(),就可以执行,同时因为js严格区分大小写,所以Function(/ALERT(1337)/)()识别失败,但是由于Function()()中可以定义函数,所以可以对前边定义的函数进行转小写操作

命令如下:

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

第八关:

分析代码:

大体和前边一样,不过它使用 DOMPurify.sanitize 过滤框架对获取的内容进行清理,会把你的危险属性过滤完了,最后将结果赋值给ID为“boomer”的元素的内部HTML。因为这个框架是由全球最顶尖的一批安全研究员合力开发的,所以几乎不可能去绕过这个框架。所以这个innerHTML标签就利用不了。

我们就只能往下考虑,看这个setTimeout函数,setTimeout函数在2秒后调用名为ok的函数

但是我们执行后可以发现这个函数就不存在

同时这也是个注入点,使用dom破坏的技术。

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

这里之所以使用tel不使用javascript是因为javascript对于这个框架而言在黑名单里,所以我们就需要找这个框架的白名单

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

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

相关文章

volatitle-线程并发-小白一文速通

目录 简而言之 专业术语解释 1、可见性 原理简介 原理图解 其他方式 2、原子性 原理简介 结合实例分析 3、有序性 原理简介 线程安全问题 Volatile效果 1、保证可见性 2、保证有序性 3、无法保证原子性 Volatile底层的实现机制(重点掌握) 经典案例 Java双重检…

朗致面试----Java开发、Java架构师

一共三轮面试。第一轮是逻辑行测&#xff0c;第二轮是技术面试&#xff08;面试官-刘老师&#xff09;&#xff0c;第三轮是CTO面试&#xff08;面试官-屠老师&#xff09;。第三轮Coding做完之后共享屏幕讲一个你自己负责过的项目&#xff08;请提前准备好架构图&#xff0c;开…

【AI趋势8】具身智能

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;已经从概念走向实际应用&#xff0c;深刻影响着我们的生产和生活方式。在众多AI技术载体中&#xff0c;人型机器人凭借其独特的类人形态和全身自由度&#xff0c;成为人工智能领域的终极载体之一。本文将深入…

系列:水果甜度个人手持设备检测-产品规划汇总与小结

系列:水果甜度个人手持设备检测 -- 产品规划汇总与小结 背景 接上一篇&#xff0c;我们从假设的用户需求出发&#xff0c;规划输出软硬件结合的一体化产品。在产品中搭载近红外光谱&#xff08;NIR&#xff09;、超声检测的模块&#xff0c;并针对不同的瓜果类型&#xff0c…

【开源分享】CommLite 跨平台文本UI串口调试助手

文章目录 1. 简介2. 编译3. 使用4. 借鉴&思考参考 1. 简介 CommLite是一款基于CSerialPort的文本UI串口调试助手。 gitee仓库 2. 编译 编译非常简单&#xff0c;按照文档操作即可&#xff1a; $ git clone --depth1 https://github.com/itas109/CommLite.git $ cd Comm…

数据结构----AVL树

小编会一直更新数据结构相关方面的知识&#xff0c;使用的语言是Java&#xff0c;但是其中的逻辑和思路并不影响&#xff0c;如果感兴趣可以关注合集。 希望大家看完之后可以自己去手敲实现一遍&#xff0c;同时在最后我也列出一些基本和经典的题目&#xff0c;可以尝试做一下。…

牛客网习题——通过C++实现

一、目标 实现下面4道练习题增强C代码能力。 1.求123...n_牛客题霸_牛客网 (nowcoder.com) 2.计算日期到天数转换_牛客题霸_牛客网 (nowcoder.com) 3.日期差值_牛客题霸_牛客网 (nowcoder.com) 4.打印日期_牛客题霸_牛客网 (nowcoder.com) 二、对目标的实现 1.求123...n_…

Java二十三种设计模式-访问者模式(21/23)

本文深入探讨了访问者模式&#xff0c;一种允许向对象结构添加新操作而不修改其本身的设计模式&#xff0c;涵盖了其定义、组成部分、实现方式、使用场景、优缺点、与其他模式的比较&#xff0c;以及最佳实践和替代方案。 访问者模式&#xff1a;为对象结构添加新的操作 引言 …

黑神话:悟空-配置推荐

显卡推荐&#xff08;按类别整理&#xff09; 1. GTX 10系列、GTX 16系列&#xff1a; 如果希望体验光线追踪&#xff0c;建议根据预算升级到RTX 40系列显卡。对于1080p分辨率&#xff0c;至少需要RTX 4060才能流畅运行。 2. RTX 20系列&#xff1a; RTX 2060、RTX 2070&#…

Openboxes 移动终端APP项目开发环境搭建与调试

文章目录 前言项目简介APP开发环境搭建APP开发环境启动及调试主应用程序启动及调试结语 前言 openboxes 项目还有一个针对移动端的项目&#xff1a;openboxes-mobile&#xff0c;但是这个项目的默认分支&#xff08;develop&#xff09;并没有与openboxes的默认分支对应&#…

LabVIEW优化内存使用

在LabVIEW中&#xff0c;优化内存使用的关键在于理解LabVIEW的内存管理机制并采用一些最佳实践。以下是一些可能帮助减少内存占用的方法&#xff1a; 1. 减少数据副本的生成 避免不必要的数据复制&#xff1a;每当你在程序中传递数组或子数组时&#xff0c;LabVIEW可能会创建副…

充电宝哪些品牌的性价比是最高的?开学最推荐入手四款充电宝

随着新学期的到来&#xff0c;学生们对充电宝的需求愈发迫切。无论是在校园内上课、图书馆自习&#xff0c;还是在外出游玩时&#xff0c;充电宝都成为了我们必不可少的随身装备。然而&#xff0c;市场上充斥着各种品牌和型号&#xff0c;如何选择一款性价比高的充电宝&#xf…

React+Vis.js(04):设置节点显示图片

文章目录 实现效果关键代码完整代码设置图片边框和背景颜色我们继续以 复仇者联盟为例,来介绍如何实现节点显示 图片。 实现效果 以图片进行节点的显示,使得显示效果更加直观,信息更为明了。 关键代码 在vis.js中,通过属性shape来控制节点显示为图像。 const nodes …

linux | 苹果OpenCL(提高应用软件如游戏、娱乐以及科研和医疗软件的运行速度和响应)

点击上方"蓝字"关注我们 01、引言 >>> OpenCL 1.0 于 2008 年 11 月发布。 OpenCL 是为个人电脑、服务器、移动设备以及嵌入式设备的多核系统提供并行编程开发的底层 API。OpenCL 的编程语言类似于 C 语言。其可以用于包含 CPU、GPU 以及来自主流制造商如 …

关于Hipe并发库中动态线程库DynamicThreadPond的一点解读(二)

文章目录 前提动态减少代码解读 动态增加线程池退出时发生了什么&#xff1f;总结附录 前提 我们在关于Hipe并发库中动态线程库DynamicThreadPond的一点解读(一)中介绍了DynamicThreadPond如何初始化&#xff0c;如何向任务队列中添加任务&#xff0c;线程池中的线程如何执行任…

机器学习——第十二章 计算学习理论

目录 12.1 基础知识 12.2 PAC学习 12.3 有限假设空间 12.3.1 可分情形 12.3.2 不可分情形 12.4 VC维 12.5 Rademacher复杂度 12.6 稳定性 12.1 基础知识 计算学习理论(computational learning theory)研究的是关于通过"计算"来进行"学习"的理论…

SAP无参考收货

其他收货 如果我们未参考其他凭证&#xff08;采购订单、生产订单或预留&#xff09;输入货物移动&#xff0c;则我们将讲到其他收货。因为在实际过帐之前&#xff0c;系统不会存储任何物料、数量、交货日期、接收工厂或来源方面的信息&#xff0c;所以此类收货属于计划外货物…

一文入门re 正则表达式

一、常用方法 &#xff08;一&#xff09;匹配 一般使用方法 第一个参数&#xff1a;正则模式 第二个参数&#xff1a;需要处理的字符串 第三个参数&#xff1a;附加处理方法result从任意位置开始匹配&#xff0c;返回match&#xff0c;没有匹配到返回None result re.searc…

MiniCPM-V: A GPT-4V Level MLLM on Your Phone论文阅读

大模型的趋势&#xff1a;模型性能越来越好&#xff0c;模型参数变小&#xff0c;端边设备计算能力变强。 MiniCPM-V优点 结果好、OCR能力突出、多分辨率、多语言、易于部署 模型结构 图片encoder适用vit。输入整体以及切片。切片使用自适应算法&#xff0c;通过计算分数&am…

揭秘图数据库:如何颠覆社交网络分析的游戏规则

在当今信息化时代&#xff0c;社交网络的数据量以指数级的速度增长&#xff0c;人们在社交网络中产生了海量的交互数据。如何从这些复杂的数据中提取有价值的信息&#xff0c;成为了数据科学和社交网络分析领域的一大挑战。图数据库作为一种有效的数据管理和分析工具&#xff0…