xss.pwnfunction.com靶机 Warmups

news2024/11/20 13:19:49

通关要求弹出警告框alert(1337)
没有用户交互
不能使用外链接
在chrome中测试

Ma Spaghet!

通过分析代码我们可以看到它直接用innerHTML将接收的内容赋值
但是我们不能使用<script>标签因为:HTML 5 中指定不执行由 innerHTML 插入的 <script> 标签。
所以我们可以使用:<img src=x οnerrοr=alert(1337)>或者<svg οnlοad=alert(1337)>

Jefff

我们可以看到它通过eval()函数将我们输入的内容与原定的字符进行了拼接
并设置了在一秒后使用innerText添加进页面
innertext会使我们的标签以普通字符串进行展示
但是eval()函数会将传入的字符串当做 JavaScript 代码进行执行。并且可以传入多个参数
这样我们就可以先闭合之后写入分隔符再写入我们的恶意代码之后将后面的引号注释掉
我们最终得到的代码:";alert(1337)//

Ugandan Knuckles

它将<>进行了过滤
将我们输入的内容写入了input标签的placeholder属性中
我们可以利用onfocus(聚焦)事件

我们可以看到当我们点击到输入框时输入框会高亮此时就是聚焦了
结合上边我们的分析我们得到的payload:" οnfοcus=alert(1337) aoutfocus//
首先闭合 然后添加onfocus触发的事件 aoutfocus自动进行聚焦

Ricardo Milos

submit() 是一个用于表单元素的 JavaScript 方法,用于提交表单。当调用这个方法时,它会触发表单的提交操作,就好像用户点击了表单中的提交按钮一样。
它定义了一个action然后将我们输入进行了一个提交
所以我们的payload:?ricardo=javascript:alert(1337)
它之所以写submit()是因为只有进行了提交才能触发这个action

Ah That's Hawt

我们可以看到它将我们的()`等符号进行了过滤导致我们无法使用alert()
这里我们第一时间会想到的是html实体编码

但是我们发现它貌似并没有上传成功
在 URL 中,&字符通常用作查询参数的分隔符,用于分隔不同的参数。如果我们想要在 URL 中包含 & 字符本身,而不是作为分隔符,通常需要对其进行编码。在我们提供的代码中,& 字符没有被编码,因此如果我们尝试将这段代码作为一个整体放在 URL 中进行上传,那么 URL 解析器可能会将其视为两个参数之间的分隔符,导致上传行为失败或者解析错误。
所以我们需要对&进行url编码

之后我们的payload:?markassbrownlee=<img%20src=x%20οnerrοr=alert%26%2340%3B1337%26%2341%3B>

Ligma

我们可以看到这个过滤比较狠将我们的大小写和数字都进行了过滤
这个过滤看起来让我们无计可施
jsfuck--一个很有意思的javascript特性 
JSFuck 的设计者将它称为“把代码缩小到最小的表达”,因为它使用了 JavaScript 中最少的一组字符来表示完整的代码逻辑。
我们通过百度将我们的代码进行编译

我们会得出一个非常长的payload但是我们上传后依然不行
因为我们的 + 在url中被识别成了空格
所以我们需要对这段代码进行urlcode转码

我们得到了一段巨长无比的代码

Mafia

这里显然我们的jsfuck用不了了它将特殊字符进行了过滤并且限制了payload的长度

方法1


这里我们需要用到location.hash.slice(1)
location.hash是 JavaScript 中用于获取或设置当前页面 URL 中的片段标识符部分的属性。
片段标识符是 URL 中的一个特殊部分,它以#符号开头,常被用来表示文档中的某个特定位置或片段。
获取到后我们使用slice()函数进行截取#号之后的部分
所以我们的payload:?mafia=eval(location.hash.slice(1))#alert(1337)

方法2

我们可以使用转进制的方法将我们的字符转为数字
我们payload可以写成:?mafia=eval(8680439..toString(30))(1337)
其中的数字是什么呢?

我们可以看到使用toString()后数字转为了alert
这里使用的是parseInt()

第一个参数是我们要转换的字符串,第二个参数表示的是30进制
为什么要使用30进制,我们可以想想我们的16进制是什么,是0-9 A-F
所以我们的16进制在这里只能取到F如果我们的字符中包含t这样的字符,我们就需要使用到包含t的进制数,如果我们的字符中包含z我们就需要使用36进制

方法3

它虽然过滤了小写的alert但是大写它没有过滤
但是使用大写的话我们的js是严格区分大小写的没办法执行
但是如果我们将它以大写的形式传入之后转为小写是不是就可以执行了
所以我们的payload:?mafia=eval(/ALERT(1337)/.source.toLowerCase())
也可以写一个匿名的函数:?mafia=Function(/ALERT(1337)/.source.toLowerCase())()

Ok, Boomer

这里我们可以看到它将我们的传参通过DOMPurify过滤框架给过滤了
尝试写一个恶意代码

可以看到它的过滤框架吧我们的危险字符直接删除了
但是我们看到它下面写了一个setTimeout(ok, 2000)
这有什么用呢?
我们可以利用DOMCLOBBERING(dom破坏)
我们的payload可以写成:<a id=ok href=tel:alert(1337)>
tel是在这个过滤框架的白名单中

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

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

相关文章

读书笔记之《机器与人》:AI如何重构工作方式和流程?

《机器与人: 埃森哲论新人工智能》作者是【美】保罗•多尔蒂和詹姆斯•威尔逊 &#xff0c;原作名: Human Machine: Reimagining Work in the Age of AI&#xff0c;2018年出版。 保罗•多尔蒂&#xff08;PAUL DAUGHERTYH&#xff09;&#xff1a;埃森哲首席技术官和创新官、…

Spring MVC中的REST风格

文章目录 REST风格1 REST简介问题导入1.1 REST介绍1.2 RESTful介绍1.3 注意事项 2 RESTful入门案例问题导入2.1 快速入门2.2 PathVariable介绍2.3 RequestBody、RequestParam、PathVariable区别和应用 3 REST快速开发【重点】3.1 代码中的问题3.2 Rest快速开发 4案例&#xff1…

springboot的maven多模块如何混淆jar包

springboot的maven多模块如何混淆jar包 一.简介二. 示例2.1 基本配置2.2 结果 三. 错误3.1 错误13.2 错误2 四. 参考文章 前言 这是我在这个网站整理的笔记,有错误的地方请指出&#xff0c;关注我&#xff0c;接下来还会持续更新。 作者&#xff1a;神的孩子都在歌唱 一.简介 …

【node】模块化与包(二)

1、模块化的基本概念 模块化是指解决一个复杂的问题时&#xff0c;自顶向下逐层把系统划分成若干模块的过程。对于整个系统来说&#xff0c;模块是可组合、分解和更换的单元。 &#xff08;1&#xff09;模块化的优点 遵循固定规则&#xff0c;把大文件拆分成对立并相互依赖…

Python使用FastAPI提供图片缩略图生成接口

使用pillow的thumbnail生成缩略图时&#xff0c;会保持原图的宽高比&#xff1b;使用的opencv的resize则不会 具体代码如下&#xff1a; #!/usr/bin/env python import re import sys from enum import Enum from io import BytesIO from pathlib import Path from typing im…

蓝桥杯 2022 dp 背包

蓝桥杯 2022 dp 背包 题目链接&#xff1a; https://www.lanqiao.cn/problems/2186/learning/?subject_code1&group_code4&match_num13&match_flow2&origincup 题目&#xff1a; 代码&#xff1a; #include<bits/stdc.h> using namespace std;#defi…

王道机试C++第6章 数学问题和22年蓝桥杯省赛选择题Day34

6.1 进制转换 二进制数&#xff08;十转二&#xff09; 习题描述 大家都知道&#xff0c;数据在计算机里中存储是以二进制的形式存储的。 有一天&#xff0c;小明学了C语言之后&#xff0c;他想知道一个类型为unsigned int 类型的数字&#xff0c;存储在计算机中的二进制串是…

多数问题求解之蒙特卡洛与分治法

多数问题&#xff08;Majority Problem&#xff09;是一个有多种求解方法的经典问题&#xff0c;其问题定义如下&#xff1a; 给定一个大小为 n n n的数组&#xff0c;找出其中出现次数超过 n / 2 n/2 n/2的元素 例如&#xff1a;当输入数组为 [ 5 , 3 , 5 , 2 , 3 , 5 , 5 ] […

JavaEE:网络编程

网络编程&#xff1a;通过代码完成基于网络的跨主机通信 跨主机通信方式&#xff1a; 1.TCP/IP网络 2.蓝牙通信 3.近场通信NFC 4.毫米波通信&#xff1a;功率高&#xff0c;带宽高&#xff0c;抗干扰能力差 其中TCP/IP网络是日常编程中最常涉及到的&#xff0c;最通用的跨主机通…

深度学习进阶:揭秘强化学习原理,实战应用全解析!

作为机器学习领域的一大分支&#xff0c;强化学习以其独特的学习方式吸引了众多研究者和实践者的目光。强化学习&#xff0c;顾名思义&#xff0c;是通过不断地强化与环境的交互来优化决策策略。在这个过程中&#xff0c;智能体通过试错&#xff0c;根据环境给出的奖励信号来调…

Linux:导出环境变量命令export

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 Linux中的内建命令export命令用于创建一个环境变量&#xff0c;或将一个普通变量导出为环境变量&#xff0c;并且在这个过程中&#xff0c;可以给该环境变量赋值。 下面…

产品测试方案:视频接入平台并发性能测试方案和报告(即150路视频并发流媒体服务器模块的性能测试方案和报告)

目 录 一、测试目的&#xff1a; 二、测试方案&#xff1a; 2.1、测试思路 2.2、拓扑图 三、测试环境 3.1 服务器配置 3.2 网络摄像机列表 3.3 测试软件 四、测试流程 4.1 H.264并发测试&#xff1a; 4.1.1老版本srsout3.10并发测试 4.1.2 新版本srsout…

反无人机电子护栏:原理、算法及简单实现

随着无人机技术的快速发展&#xff0c;其在航拍、农业、物流等领域的应用日益广泛。然而&#xff0c;无人机的不规范使用也带来了安全隐患&#xff0c;如侵犯隐私、干扰航空秩序等。为了有效管理无人机&#xff0c;反无人机电子护栏技术应运而生。 目录 一、反无人机电子护栏…

代码随想录算法训练营Day46 ||leetCode 139.单词拆分 || 322. 零钱兑换 || 279.完全平方数

139.单词拆分 class Solution { public:bool wordBreak(string s, vector<string>& wordDict) {unordered_set<string> wordSet(wordDict.begin(), wordDict.end());vector<bool> dp(s.size() 1, false);dp[0] true;for (int i 1; i < s.size(); …

【Linux】-Linux下的软件商店yum工具介绍(linux和windows互传文件仅仅一个拖拽搞定!!!!)

目录 1.Linux 软件包管理器yum 1.1快速认识yum 1.2 yumz下载方式&#xff08;如何使用yum进行下载&#xff0c;注意下载一定要是root用户或者白名单用户&#xff08;可提权&#xff09;&#xff09; 1.2.1下载小工具rzsz 1.2.2 rzsz使用 1.2.2查看软件包 1.3软件的卸载 2.yum生…

Grapher教程—重建长江中下游降雨量时间变化序列

各位朋友好&#xff01;非常激动&#xff01;新学了一个科研绘图软件&#xff0c;它的大名叫“Grapher”&#xff0c;也许在科研界早已如雷贯耳&#xff0c;但在我这&#xff0c;还得是第一次遇见你&#xff01;来看看小编在老师的指导下鼓捣了三节课搞出来的图。 就问大家&…

6.Java并发编程—深入剖析Java Executors:探索创建线程的5种神奇方式

Executors快速创建线程池的方法 Java通过Executors 工厂提供了5种创建线程池的方法&#xff0c;具体方法如下 方法名描述newSingleThreadExecutor()创建一个单线程的线程池&#xff0c;该线程池中只有一个工作线程。所有任务按照提交的顺序依次执行&#xff0c;保证任务的顺序性…

Mybatis-Plus实现常规增删改操作

文章目录 3.1 MP实现插入操作3.1.1 BaseMapper定义操作方法3.1.2 代码测试 3.2 MP主键字段注解-TableId3.2.1 注解TableId介绍3.2.2 MP主键生成策略介绍3.2.3 MP常用主键生成策略3.2.4 雪花算法(了解) 3.3 普通列注解-TableField3.3.1 注解TableField作用3.3.2 代码示例 3.4.MP…

自适应差分进化算法(SaDE)和差分进化算法(DE)优化BP神经网络

自适应差分进化算法(SaDE)和差分进化算法(DE)优化BP神经网络 自适应差分进化算法(SaDE)和差分进化算法(DE)可以用于优化神经网络中的参数&#xff0c;包括神经网络的权重和偏置。在优化BP神经网络中&#xff0c;DE和SaDE可以帮助找到更好的权重和偏置的组合&#xff0c;以提高…

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的交通标志识别系统详解(深度学习模型+UI界面代码+训练数据集)

摘要&#xff1a;本篇博客详细介绍了利用深度学习构建交通标志识别系统的过程&#xff0c;并提供了完整的实现代码。该系统采用了先进的YOLOv8算法&#xff0c;并与YOLOv7、YOLOv6、YOLOv5等早期版本进行了性能评估对比&#xff0c;分析了性能指标如mAP、F1 Score等。文章深入探…