xss-lab靶场4-7关基础详解
前言:
仅作为练习,复盘
推荐html在线运行平台,弹窗标签可以在平台运行,看语句是否能正常弹窗
HTML/CSS/Javascript在线代码运行工具 | 菜鸟教程
内容:
第四关
打开一看,输入<script>alert(1)</script>,看过滤了什么,好像将尖括号过滤了,实体化了,
但是有<input>标签,不需要再重新输入标签,
利用<input>标签,重新构造onclick函数即可造成弹窗
答案为:"οnclick="alert(1)
在重新查看源代码,看过滤了什么
过滤了<>,相当于实体化编码了,
利用前提:存在<input>等危险标签,且双引号可以闭合name字段,重新构造onclick函数
总结思路:过滤了<>,但是还存在危险标签<input>,并且未过滤双引号,导致可以闭合value字段,所以可以构造onclick字段造成弹窗
第五关
我直接输入了:"οnclick="alert(1),看是否有变化,直接将on改成了o_n,我想再去看input标签是否有不含on的参数,结果发现没有,怎个回事,然后这关也是过滤了<>
我想出来的方法是大写绕过,这个好像是针对windows系统奏效的,然后双写绕过(这个肯定不行),想不出来其他方法了,就想到大小写绕过,但是有转化函数,将大写字母全转为小写字母了
突然想到了有个编码绕过,但是我不知道怎么用,其实我之前提前看过答案了,才知道有这个方法
无解,好像想错了,离谱,看下答案,ok
现在知道了将on替换成o_n,和过滤掉on没有很大区别了
替换的字符有,
on、ri替换为o_n、r_i
排错<script>标签,还有包含on的函数,寻找其他可用的标签以及函数
思路
1、on被替换成o_n,意味着input标签不能使用,因为input标签里的函数都带有on字段
2、寻找其他标签,只要不带有ri即可,
那就找<a>标签,其中里面的函数有不带on字段的,(有其他标签符合的也可以)
<a>标签常见的写法之一
<a href="javascript:alert(1)">test</a>
然后构造payload、闭合input标签,写入a标签
"><a href="javascript:alert(1)" >test</a>
总结思路
过滤了on、script,含有大小转换为小写的函数,不能大小写绕过,选择其他标签且不带有script、on字段即可
第六关
尝试写入各种payload,就是之前关卡的payload,发现
替换on、href、script,相当于过滤了on、href、script、src、data字段
基本上把所有的函数都给过滤了,就是说绕过也是在函数字段后面吧应该
绝招,看答案,算了问ai吧,没办法在看答案,问了ai好像给了我好多答案,但是我都没有试出来,有点意思,难道ai也不能解决,可能我问的方式也有问题吧。ok看答案
有点崩溃了,居然是大小写绕过,最朴素的大小写绕过啊,废了
想起来了,前几关有大写转小写的函数,但是这关没有
构造payload
"><a HREF="javascript:alert(1)" >test</a>
总结思路
虽然过滤了绝大部分xss弹窗需要的函数和标签,但是未检测大小写,所以可以用大小写进行绕过!!!!
思考问题:为什么大小写可以绕过这关?
根据我的思考,难道他是windows搭建的,对大小写不敏感?
得到的是否定,不对啊,他又不是用windows运行的,怎么和windows扯上关系了,那他的这段代码是前端运行的!!!
所以是和html和javascript这两个有关系,搜一下子,ok有一点理解,
例如:<script>alert(1)</script>,这段代码的其实分为两种,<script>标签其实html语言的一部分,就是html代码,但是alert(1)是javascript代码,就是js语言,其实就是script标签里面的语句,就是然个js语言来执行的,
但是不是所有的标签里面的语句都是用js引擎来解析的,例如:
<button οnclick="alert(1)"> 有onlick函数,能解析js
<script src="data:text/javascript,..."> 有src,能解析js
等
所以回到正题,本身标签是html代码,所以可以用大小写绕过(html不区分大小写),但是里面的函数是js执行,可就不能大小写绕过了(js严格区分大小写,)
第7关
先尝试注入各种payload,发现payload的其中像,script,on*,data等关键字全部删除了
见图,以下是删除的script,但是未过滤尖括号和双引号,还有其他办法
如果不是删除,是替换了,就没有其他办法了,
如果是删除的话,就需要检查他有没有进行二次删除,就是说他删了我一个script字段后,我剩余的字段可以拼接成script,也是可以造成弹窗
如:<scscriptript>,如果是将里面的script删除了,如果没有检验二次检查的话,我剩余的就可以组成一个完整的弹窗语句,<script>,
所以构造payload:"><scscriptript>alert(1)</scscriptript>
总结思路:
只是对敏感标签进行删除,但是没有进行二次验证,所以可以通过双写来绕过
如果是对敏感字符进行替换,也不能用双写来绕过了
相关文章:
xss-lab靶场4-7关基础详解
前言: 仅作为练习,复盘 推荐html在线运行平台,弹窗标签可以在平台运行,看语句是否能正常弹窗 HTML/CSS/Javascript在线代码运行工具 | 菜鸟教程 内容: 第四关 打开一看,输入<script>alert(1)&l…...
【Linux】进程状态、优先级、切换和调度
目录 一、传统操作系统进程状态 (一)什么是状态 (二)运行状态 (三)阻塞状态 (四)挂起状态 二、Linux进程状态 (一)进程状态 (二ÿ…...
软件测试基础知识详解
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 1、黑盒测试、白盒测试、灰盒测试 1.1 黑盒测试 黑盒测试 又叫 功能测试、数据驱动测试 或 基于需求规格说明书的功能测试。该类测试注重于测试软件的功能性需…...
【WordPress博客AI内容辅助生成/优化工具箱插件下载无标题】
主要功能 AI内容生成/优化 使用AI模型生成或优化段落内容 支持撤销和模型切换 AI自动评论 智能分析文章内容生成相关评论 可配置的评论数量和随机调度 生成评论回复的概率(评论数>10时) 可能以特定概率包含表情符号 AI标签提取 从文章内容自动提取相关标签 新标签可自动生…...
js 画立方体软件开发日记2
我不懂但我大为震惊 重开几次又回去了 这说明之前的操作无效 搞了个调试当前文件 导出模块有问题,跑显示没事 启动太慢,重构吧 ----------------------------------------------- 把那些鬼相机投影代码删了就有4s了 按钮全删了,还是卡&…...
element plus el-table多选框跨页多选保留
一、基础多选配置 通过 type“selection” 开启多选列,并绑定 selection-change 事件获取选中数据 <template><el-table :data"tableData" selection-change"handleSelectionChange"><el-table-column type"selection&qu…...
智能家居“心脏“升级战:GD25Q127CSIG国产芯片如何重构家庭物联生态
在智能家居设备出货量突破10亿台的2023年,家庭网关正经历着前所未有的技术革新。作为连接云端与终端设备的中枢神经,智能网关的存储芯片选择直接决定着整个智能生态系统的运行效率。在这场技术升级浪潮中,兆易创新GD25Q127CSIG串行闪存芯片主…...
智能枪弹柜管理系统|智能枪弹柜管理系统LK-QDG-Q20型
是一种用于存放枪支弹药的智能化设备,主要应用于涉枪单位,以下将从其功能特点、系统组成、优势等维度展开介绍: 功能特点 身份识别功能:采用多种生物识别技术,如指纹识别、指静脉识别、虹膜识别、人脸识别、声纹识别等…...
bootstrap table 添加跳转到指定页的功能(仅自己可见)
Table回调方法中,添加input和button至Table下方(Table页渲染结束后执行) (input用来输入页码,button执行跳转) function ajaxRequestExtends(data){$(".page-list").append("<input idp…...
rufus+Ubuntu 18.04 镜像
参考:https://blog.csdn.net/Li060703/article/details/106075597 Rufus 官网: https://rufus.ie/zh/ 步骤 安装U盘做好后插在主板io的USB口上,启动阶段用F2或DEL打断进bios,bios里面指定从安装U盘来启动,里面的B…...
基于事件驱动和策略模式的差异化处理方案
一、支付成功后事件驱动 1、支付成功事件 /*** 支付成功事件** author ronshi* date 2025/5/12 14:40*/ Getter Setter public class PaymentSuccessEvent extends ApplicationEvent {private static final long serialVersionUID 1L;private ProductOrderDO productOrderDO;…...
【运维】MacOS蓝牙故障排查与修复指南
在日常使用macOS系统过程中,蓝牙连接问题时有发生。无论是无法连接设备、连接不稳定还是蓝牙功能完全失效,这些问题都会严重影响我们的工作效率。本文将分享一些实用的排查方法和修复技巧,帮助你解决macOS系统上的蓝牙故障。 问题症状 常见…...
linux小主机搭建自己的nas(三)docker安装nextcloud
小主机用的TF卡,不可能把nas的数据放在卡上,所以我买了个2T的移动硬盘 1.挂载移动硬盘 查找硬盘 lsblk # 或 fdisk -l 创建挂载点 sudo mkdir -p alon_ssd 查看硬盘文件系统,文件系统类型一会儿设置挂载用 sudo blkid /dev/sda1 开机自动挂载&…...
Go语言:json 作用和语法
在 Go 语言中,JSON 字段(也称为 JSON Tag)是附加在结构体字段上的元数据,用于控制该字段在 JSON 编码(序列化)和解码(反序列化) 时的行为。它的语法是: type StructName…...
mageia系统详解
Mageia 是一个由社区驱动的 Linux 发行版,源自 Mandriva Linux(原 Mandrake Linux),以用户友好性和强大的系统工具著称。它继承了 Mandriva 的易用性传统,同时专注于稳定性和社区协作。以下从历史背景、技术架构、系统…...
六、STM32 HAL库回调机制详解:从设计原理到实战应用
STM32 HAL库回调机制详解:从设计原理到实战应用 一、回调机制的本质与设计目标 在STM32 HAL库中,回调机制是实现异步事件处理的核心设计模式。它通过弱定义函数用户重写的方式,将硬件事件(如数据传输完成、定时器溢出等…...
USB传输模式
USB有四种传输模式: 控制传输, 中断传输, 同步传输, 批量传输 1. 中断传输 中断传输一般用于小批量, 非连续的传输. 对实时性要求较高. 常见的使用此传输模式的设备有: 鼠标, 键盘等. 要注意的是, 这里的 “中断” 和我们常见的中断概念有差异. Linux中的中断是设备主动发起的…...
lenis滑动插件的笔记
官网 lenis - npm 方法一:基础判断(推荐) 通过 Lenis 自带的 scroll 和 limit 属性直接判断: const lenis new Lenis()// 滚动事件监听 lenis.on(scroll, ({ scroll, limit }) > {const distanceToBottom limit - scroll…...
【网络安全】SQL注入
如果文章不足还请各位师傅批评指正! 想象一下,你经营着一家咖啡店,顾客可以通过店内的点单系统下单。这个系统会根据顾客的输入,向后厨发送指令,比如“为顾客A准备一杯拿铁”。 然而,如果有个不怀好意的顾客…...
window server 2012安装sql server2008 r2
执行sql server2008 r2安装目录下的setup 选择运行程序而不获取帮助 然后就是让人绝望的 只能先搞这个了,F*微软,自家软件不让正常安装 打开服务器管理器->添加角色和功能->选择Web 服务(IIS)->添加.NET Framework3.5 然…...
uni-app学习笔记五--vue3插值表达式的使用
vue3快速上手导航:简介 | Vue.js 模板语法 插值表达式 最基本的数据绑定形式是文本插值,它使用的是“Mustache”语法 (即双大括号): <span>Message: {{ msg }}</span> 双大括号标签会被替换为相应组件实例中 msg 属性的值。同…...
RuoYi 中使用 PageUtils.startPage() 实现分页查询的完整解析
文章目录 一、PageHelper 简介与基本用法使用方式如下: 二、Mapper 接口返回类型对分页的影响1. 返回 Page<T> 类型(推荐)2. 返回 List<T> 类型(不推荐) 三、解析RuoYi 是如何使用 PageUtils.startPage()1…...
【番外】02:Windows 编译带 DNN_CUDA 功能的 OpenCV 动态链接库
文章目录 1. 环境准备2. 兼容性说明3. 算力查询4. 编译步骤5. 网盘资料 提示: 如果读者因网络环境受限,无法正常下载与本文相关的软件安装包、压缩包,以及编译时的依赖文件,可以从文章最后提供的网盘链接下载资源。 1. 环境准备 …...
Java详解LeetCode 热题 100(14):LeetCode 56. 合并区间(Merge Intervals)详解
文章目录 1. 题目描述2. 理解题目3. 解法一:排序 一次遍历法3.1 思路3.2 Java代码实现3.3 代码详解3.4 复杂度分析3.5 适用场景 4. 解法二:双指针法4.1 思路4.2 Java代码实现4.3 代码详解4.4 复杂度分析4.5 与解法一的比较 5. 解法三:TreeMa…...
回答 | 图形数据库neo4j社区版可以应用小型企业嘛?
刚在知乎上看到了一个提问,挺有意思,于是乎,贴到这里再简聊一二。 转自知乎提问 当然可以,不过成本问题不容小觑。另外还有性能上的考量。 就在最近,米国国家航空航天局——NASA因为人力成本问题,摒弃了使…...
2024年北理工Python123第六章测验题整理
测验题一般不会太难,但是这次的题目,未免太多了,有的还很难 一、选择题 二、编程题 1-10 列表和字符串 1-10都是和列表、字符串有关的题目,都很简单,我直接给出代码了 1.列表排序输出 import random random.seed(int(input()…...
常用的设计模式详解
常用的设计模式详解 在后端开发中,设计模式是提升代码可维护性、扩展性和灵活性的关键工具。通过合理应用设计模式,开发者能够高效解决复杂问题并优化系统架构。本文将结合实际案例,深入探讨后端开发中常用的设计模式及其核心应用场景。 一、…...
OFCMS代码审计-freemaker注入sql注入xxexss文件上传
环境搭建 下载地址:https://gitee.com/oufu/ofcms/repository/archive/V1.1.2?formatzip SSTI模板注入(freemaker) FreeMarker模板注入实现远程命令执行 - Eleven_Liu - 博客园 在admin中找到这个 发现请求的是这个 找到他 <#assign value"f…...
python与nodejs哪个性能高
在一般的Web开发和高并发场景中,Node.js的性能通常优于Python,特别是在处理大量异步任务和实时应用时更具优势;而在数据分析、机器学习及计算密集型任务中,Python则表现出更高的性能优势。 Node.js以事件驱动的非阻塞I/O模型著称&…...
云平台管理部署知识点——问题+答案
1、在k8s 中定义副本数量的关键字是那个?处于那个模块下? 关键字:replicas 模块:spec下 2、在k8s中,有状态应用和无状态应用的区别?创建有状态和无状态应用分别使用哪种资源对象类型? &#…...
数据结构(六)——树和二叉树
一、树和二叉树的定义与存储 1.树的定义 树是一种非线性的数据结构,它是由n个有限结点组成有层次关系的集合 树具有以下特点: (1)每个结点具有0个或多个子结点 (2)每个子结点只有一个父结点 ÿ…...
基于构件的开发方法与传统开发方法的区别
在软件开发领域,基于构件的开发方法和传统开发方法有着截然不同的特点与应用效果,这些差异显著影响着项目的实施过程与最终成果。下面,我们将从多个关键维度展开对比分析。 一、开发模式:线性搭建与模块组装 传统开发方法遵循线性的、自顶向下的流程,就像搭建一座高楼…...
cursor对话关键词技巧
提示词基本结构与原则 一个好的 Cursor 提示词通常包含三个部分:目标说明 上下文信息 具体要求。 例如: 创建一个React登录组件,使用Tailwind CSS样式,需要包含邮箱验证功能和记住密码选项。 效果演示: 提示词的的…...
克隆虚拟机组成集群
一、克隆虚拟机 1. 准备基础虚拟机 确保基础虚拟机已安装好操作系统(如 Ubuntu)、Java 和 Hadoop。关闭防火墙并禁用 SELinux(如适用): bash sudo ufw disable # Ubuntu sudo systemctl disable firewalld # CentO…...
添加购物车-02.代码开发
一.代码开发 购物车属于用户端功能,因此要在user下创建controller代码。 Controller层 package com.sky.controller.user;import com.sky.dto.ShoppingCartDTO; import com.sky.entity.ShoppingCart; import com.sky.result.Result; import com.sky.service.Shopp…...
2094. 找出 3 位偶数
from typing import Listclass Solution:def findEvenNumbers(self, digits: List[int]) -> List[int]:# 统计 digits 中每个数字(0-9)的出现次数。cnt [0] * 10for d in digits:cnt[d] 1ans []# i0 百位,i1 十位,i2 个位&a…...
外出充电不发愁,倍思便携式移动电源成出行新宠
电子设备已深度融入现代快节奏生活,成为出行必备。但随之而来的电量焦虑,却始终困扰着人们。无论是出差远行、户外探索,还是每日通勤,如何随时为设备充电,成了亟待解决的难题。倍思极客充伸缩数据线充电宝应运而生&…...
防火墙安全策略基础配置
拓朴图 设备基础配置 # AR1 路由器配置 [Huawei]interface GigabitEthernet0/0/0 [Huawei-GigabitEthernet0/0/0]ip address 1.1.1.2 255.255.255.0 [Huawei]ip route-static 192.168.1.0 255.255.255.0 1.1.1.1# FW1 防火墙配置 [USG6000V1]sysname FW1 [FW1]interface Gigab…...
系统架构-通信系统架构设计
通信网络系统架构 局域网 单一机构所拥有的专用计算机网络 局域网从早期只提供二层交换功能的简单网络发展到现在,还提供三层路由功能的复杂网络 局域网的典型架构风格: 单核心架构:由一台核心二层或三层交换设备充当网络的核心设备&…...
2.3 定积分
一、数学定义与核心公式 核心思想: 定积分是通过无限细分区间、累加微小矩形面积来逼近曲边图形面积的数学工具。其本质是极限过程下的误差控制与动态平衡。 公式与符号解析: 表达式:定积分写作 ∫ₐᵇ f(x)dx,表示在区间 [a, …...
TCPIP详解 卷1协议 八 ICMPv4和ICMPv6 Internet控制报文协议
8.1——ICMPv4和ICMPv6 Internet控制报文协议 IP 协议本身并没有为终端系统提供直接的方法来发现那些发往目的地址失败的IP数据包。此外,IP 没有提供直接的方式来获取诊断信息(例如,哪些路由器在沿途中被使用了或使用一种方法来估计往返时间…...
ik 分词器 设置自定义词典
进入 ES 的安装目录,进入 /elasticsearch-8.10.0/plugins/ik/config/ 文件夹目录,打开 IKAnalyzer.cfg.xml 文件进行配置。 一、添加 自定义扩展词典 扩展词:就是不想哪些词分开,让他们成为一个词,比如“蒙的全是对…...
RabbitMQ 工作模式
RabbitMQ 一共有 7 中工作模式,可以先去官网上了解一下(一下截图均来自官网):RabbitMQ 官网 Simple P:生产者,要发送消息的程序;C:消费者,消息的接受者;hell…...
sqlmap使用入门
sqlmap加速了sql注入的发展,需要掌握6点,其一是--dbs获得数据库名称,其二是-D 数据库名称 --tables 获得数据库中的所有表名,其三是-D 数据库名 -T 表名 -C 字段1,字段2 --dump 获得数据库中的表中的字段的值,其四是-r…...
C++23 中的 views::stride:让范围操作更灵活
文章目录 什么是 views::stride语法与用法参数与返回值实现细节适用场景编译器支持总结 什么是 views::stride views::stride 是 C23 引入的一个范围适配器。它允许我们从一个范围中以固定步长提取元素,从而生成一个新的范围视图。具体来说,给定一个范围…...
OSI 7层模型
OSI 7层模型: 1、物理层(光纤等把电脑连接起来的物理手段) 2、数据链路层(以太网,确认0和1电信号的分组方式,负责MAC地址,MAC地址用于在网络中唯一标示一个网卡,相当于网卡的身份证…...
向量组的维度是单个向量中元素的个数
在线性代数中,向量组的维数通常指的是单个向量中元素的个数,即每个向量的维度(dimension)。例如,一个由三维几何向量(如 ( x , y , z ) (x, y, z) (x,y,z))组成的向量组,其维数是3&…...
VM中 ubuntu 网卡不显示
1.添加网卡配置 #sudo nano /etc/netplan/01-netcfg.yaml network:version: 2renderer: networkdethernets:ens33:dhcp4: trueens37:dhcp4: trueens38:dhcp4: true#保存后 sudo netplan apply2.查看网络状态 sudo systemctl start systemd-networkd sudo systemctl status sy…...
Scratch基础-运动模块详解
一、本次任务 二、内容详解 1)点位坐标知识 1、什么是坐标? 答: 坐标是定位位置的数字,大家进教室是不是都有自己的座位?比如第3排第2列?这就像Scratch舞台的坐标,每个角色都有自己的‘座位号’…...
dp自动化登陆之hCaptcha 验证码
hCaptcha 是一种常见的验证码服务,用于区分人类用户和自动化程序。由于其基于图像识别和行为分析,下面介绍如何使用自动化点击验证码完成登陆。 思路:登陆目标网站触发验证码,截图并发给打码平台返回坐标,模拟人工点击…...