一些有趣的XSS注入GAME

news2024/9/21 20:47:15

目录

1.ma,Spaghet

2.Jefff

3.Ugandan Knuckles

4.Ricardo Milos

5. Ligma

6.Ah That's Hawt

7.Msfia

8.Ok,Boomer


1.ma,Spaghet

innerHTML :设置 innerHTML 的值可以让你轻松地将当前元素的内容替换为新的内容。

HTML 5 中指定不执行由 innerHTML 插入的 <script> 标签。

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

2.Jefff

innerTEXT:在一个节点上设置 innerText 会移除该节点的所有子节点,并用给定的字符串值的单一文本节点代替它们。

简单说就是标签不起作用,直接当成字符串了

setTimeout:全局的 setTimeout() 方法设置一个定时器,一旦定时器到期,就会执行一个函数或指定的代码片段。只能执行一次

所以:这里只能从eval这里破局!

首先通过引号闭合前面的内容,让我们的执行的命令逃逸出来!然后在闭合后面的引号

3.Ugandan Knuckles

可以看见这里被<>被过滤了

我们可以想到onclick这个属性

但是这样写的话有点不满足要求,因为它与用户交互了

input使用这样一个属性 onfocus ,autofocus

这里autofucus默认是yes.

4.Ricardo Milos

这里action为注入点

5. Ligma

这里过滤了英文和数字

这样感觉有点无从下手的感觉,这里只能使用编码了,看下源码!

jsfuck编码

由于URL不识别有些符号,需要对它进行URL编码

6.Ah That's Hawt

分析代码发现()不能使用了

试试能不能通过编码的方式来代替()

但是简单的使用%28 %29并不起作用

因为当浏览器将数据传到后端以后,因为转为()了,还是会被过滤

将%编码试试,%25,这样到后端以后就会变成%28 %29,如果js能够解码的话,最后传到页面的时候在解码%28,%29为(),这样不就实现了嘛

但是,js对符号并不进行解码,只对字符串和标识符进行编码。

那能不能将这一串变为字符串,然后对其解码呢?

当然是可以的,location,可以将其后面的内容当作字符串

7.Msfia

这里当alert,confirm prompt都不能使用

这里有三个方法:

方法1:匿名函数

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

Function()() 第二个括号的作用,为了执行第一个括号里面的内容

这里得/  /代表之前得是函数,固定格式

方法2:

parseInt 和toString两个搭档

parseInt('alert',30) 得到一个数n,n..toString(30)就变回来了

注意:这里只能30以上36以下,因为30进制才包含t,parseInt最大只能写36

不过这里需要的是:toString转换之后是字符串

需要使用alert()将其当成js代码执行

方法3:

location.hash.slice(1)#alert(1337)

location.hash可以获取#后面的值,#后面的值不会被认为传递的参数

但是得到的是一个字符串,我们需要执行它

最终的payload:?mafia=eval(location.hash.slice(1))#alert(1337)

8.Ok,Boomer

由于我们的输入被过滤框架过滤了,所以,这里基本上没什么希望了

然后我们将目光放在了setTimeOut这个函数这里

发现它2s后执行了一个ok。感觉没啥用

那如果我们能够将这个OK换成我们注入的代码,那是不是就实现注入了呢?

这里需要用到一个DOM破坏的知识

举个栗子:

通过这种方式我们就可以拿到这个标签

通过这种方式我们可以执行标签里面的内容,但是发现它返回的是HTMLFormElent这个玩意

我们写的不是dadsa吗,怎么输出个这个

那是因为:所以元素的顶点就是object,object得toString方法最终得到得是一个元素,如果没有自己的toString方法的话,将会继承object的,返回类似这样的一个值

那怎么得到一个有自己toString方法的元素呢?

Object.getOwnPropertyNames(window) .filter(p => p.match(/Element$/)) .map(p => window[p]) .filter(p => p && p.prototype && p.prototype.toString !== Object.prototype.toString)

我们可以得到两种标签对象:HTMLAreaElement ()& HTMLAnchorElement ()

HTMLAnchorElement () 就是a标签,它会将href属性后面内容当字符串输出

利用这点,我们可以实现恶意代码注入

全局的 setTimeout() 方法设置一个定时器,一旦定时器到期,就会执行一个函数或指定的代码片段。setTimeout()可以允许将函数当作字符串执行,a 标签得href可以自动替换成字符串

OK,答案一下就出来了

我们可以<a id=ok href="javascript:alert(1337)">

但是,发现没反应。那是因为javascript被这个框架过滤了,黑名单

换一个它白名单里面的就行了

但是!经过测试,并不是所有的都行

tel ,cid callto 这三个都行

总结:a标签可以让href属性后面内容当作字符串,而不是返回object对象

当我们执行标签代码时,标签会调用toString方法,将内容转换为字符串

我发现一个有意思的点:

href后面转化为我们想要的字符串了

这样看起来没什么问题

这样又有问题了

又正常了

这说明setTimeout执行的是alert函数,而前面的javascript:应该是每传进来,不然就语法错误。

我理解的是javascript:将后面的alert字符串替换成alert js代码,类似于eval的作用,传进setTimeout的时候就不是字符串,而是js代码

但是setTimeout()传进去又变成字符串了,不过不影响,它能将字符串当函数执行

是不是糊涂了

如果我们不经过前面的javascript:将其变成字符串,那么传进去后时候就会带两个引号,那么就算setTimeout可以将字符串当作代码执行,但是,里面还是一层字符串,执行不了。

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

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

相关文章

【win/mac】矢量图形编辑软件Adobe Illustrator(AI) 2024版本下载与安装

一、Adobe AI 软件简介 什么是 Adobe AI 软件Adobe Illustrator&#xff08;简称 AI&#xff09;是一款功能强大的矢量图形编辑软件&#xff0c;广泛应用于平面设计、插画绘制、图标设计、包装设计等领域。它允许用户创建、编辑和处理各种复杂的矢量图形&#xff0c;具有极高的…

Metasploit 入门教程(非常详细)从零基础入门到精通,看完这一篇就够了!

一、引言 Metasploit 是一款强大的开源渗透测试工具框架&#xff0c;被广泛应用于网络安全领域。无论是安全研究人员、渗透测试工程师&#xff0c;还是对网络安全感兴趣的初学者&#xff0c;掌握 Metasploit 都是提升技能的重要一步。本教程将带您从零基础开始&#xff0c;逐步…

Linux软件编程学习第十三天

网络&#xff1a;1.协议&#xff1a;通信双方约定的一套标准 2.国际网络通信协议标准&#xff1a; 1.OSI协议&#xff1a; 应用层 发送的数据内容 表示层 数据是否加密 会话层 是否建立会话连接 传输层 …

HarmonyOS NEXT星河版零基础入门(3)

1. 系统弹出框 import { promptAction } from kit.ArkUI;Component struct weChat {State text:string build(){Column(){Text(this.text )Search({value:$$this.text})Button(改值).onClick(()>{promptAction.showToast({message:this.text,duration:10000})})}} } messa…

什么是DevUI?

DevUI是面向企业中后台产品的开源前端解决方案&#xff0c;其设计价值观基于"高效、开放、可信、乐趣"四种自然与人文相结合的理念&#xff0c;旨在为设计师、前端开发者提供标准的设计体系&#xff0c;并满足各类落地场景&#xff0c;是一款企业级开箱即用的产品。 …

Pikachu-XSS漏洞之cookie值获取、钓鱼结果和键盘记录实战记录

目录 Pikachu-XSS漏洞之cookie值获取、钓鱼结果和键盘记录实战记录 一、XSS&#xff08;get型&#xff09;之cookie值获取&#xff1a; 二、xss&#xff08;post型&#xff09;之cookie值获取 三、Xss之钓鱼攻击 四、XSS获取键盘记 Pikachu-XSS漏洞之cookie值获取、钓鱼结果…

RabbitMQ消息队列:概念、单节点和集群示例

目录 消息队列 概念 主流的消息队列 消息队列名词 &#xff08;1&#xff09;Broker &#xff08;2&#xff09;Topic &#xff08;3&#xff09;Producer &#xff08;4&#xff09;Consumer &#xff08;5&#xff09;Queue &#xff08;6&#xff09;Message 消息…

【C++二分查找】1011. 在 D 天内送达包裹的能力

本文涉及的基础知识点 C二分查找 LeetCode1011. 在 D 天内送达包裹的能力 传送带上的包裹必须在 days 天内从一个港口运送到另一个港口。 传送带上的第 i 个包裹的重量为 weights[i]。每一天&#xff0c;我们都会按给出重量&#xff08;weights&#xff09;的顺序往传送带上…

MVC与三层架构分层

1. 应用分层 应用分层类似公司的组织架构。我们进行项目开发时&#xff0c;最开始功能简单&#xff0c;前后端放在一起开发&#xff0c;但随着项目功能的复杂&#xff0c;项目会被前端和后端不同的团队接手&#xff0c;甚至更细粒度的团队。甚至后端开发也会根据功能再进行细分…

把VTK窗口嵌入到Qt的窗口中显示(二)

把VTK窗口嵌入到Qt的窗口中显示(二) 一、控件拖动 之前的文章介绍了,如何通过拖动一个控件,然后提升这个控件为QVTKWidget,然后来显示点云信息。 把VTK窗口嵌入到Qt的窗口中显示(一) 其实我们还可以直接通过代码来实现。我们打开QVTKWidget的代码可以看到,这个类就…

函数序列的逐点收敛和一致收敛的理解

目录 1. 逐点收敛(Pointwise Convergence) 1.1 逐点收敛定义 1.2 对逐点收敛的理解 1.3 举例说明 2. 一致收敛(Uniform Convergence) 2.1 一致收敛定义 2.2 对一致收敛的理解 2.3 举例说明 1. 逐点收敛(Pointwise Convergence) 1.1 逐点收敛定义 我们令 为…

无人机里的陀螺仪/加速器/气压计/GPS详解

陀螺仪 是一种用于测量和控制无人机姿态的重要传感器。它通过检测无人机的旋转运动来提供准确的方向和角度信息。 加速度计 用于提供无人机在XYZ三轴方向所承受的加速力。它也能决定无人机在静止状态时的倾斜角度。 气压计 通过测量大气压力来估算无人机的高度。随着高度的…

疫情隔离酒店管理系统的开发--论文pf

TOC springboot395疫情隔离酒店管理系统的开发--论文pf 绪 论 1.1研究背景与意义 当前&#xff0c;我国的常态化防控正处于迅速发展阶段&#xff0c;管理人员与疫情防控进一步标准化&#xff0c;需各酒店等生活服务场所加强管理&#xff0c;使用健全的信息系统对防控工作进…

Windows环境在使用Pycharm设置Python解译器时提示找不到Python打包工具,安装打包工具错误提示解决方法

问题现像如下 截图&#xff1a; 解决方法&#xff1a; 第一步&#xff1a;在CMD命令行输入&#xff1a; python -m ensurepip --default-pip 安装distutils 第二步&#xff1a;检查和安装setuptools和wheel&#xff1a; python -m pip install --upgrade setuptools wheel…

如何搭建软件测试环境?

关于如何搭建测试环境&#xff0c;也是面试会经常问到的一个问题&#xff0c;一般常见于一些创业公司&#xff0c;因为测试环境不够完善&#xff0c;可能会遇到搭建环境这个问题。 一般来说&#xff0c;测试环境搭建都属于运维的工作范畴&#xff0c;但是可能有些创业公司就没有…

日拱一卒(5)——leetcode学习记录:路经总和

一、任务 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的…

【秋招笔试】8.17饿了么秋招第一场-三语言题解

🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 编程一对一辅导 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收…

Unity图形系统

Unity的图形系统是一个复杂且功能强大的模块&#xff0c;它支持多种渲染技术和API&#xff0c;能够满足从移动设备到高端游戏机和桌面平台的各种需求。以下是关于Unity图形系统的详细解析&#xff1a; 渲染流程与技术 Unity的渲染流程可以分为应用程序阶段&#xff08;CPU&…

公开测评:文件防泄密系统哪家好|4款文件防泄密软件推荐

在文件防泄密系统领域&#xff0c;有多款软件以其高效、安全和全面的功能脱颖而出&#xff0c;为企业数据保护提供了有力支持。以下是四款值得推荐的文件防泄密软件&#xff0c;它们各具特色&#xff0c;能够满足不同企业的数据安全需求。 1. 安企神软件 7天试用版https://wor…

Ubuntu | 更换 Geth 版本

参考博客&#xff1a;VMware 虚拟机下 Ubuntu 中 geth 和 truffle 更换版本解决 写在前面&#xff1a;我按照参考博客的方法添加了环境变量&#xff0c;但是报错 geth 命令不存在&#xff0c;因此我换了一种方法。 重新安装 1.10.8-stable 版本的 Geth ① 移除当前已经安装的…