XSS漏洞:xss.haozi.me靶场通关

xss系列往期文章:

初识XSS漏洞-CSDN博客

利用XSS漏洞打cookie-CSDN博客

XSS漏洞:xss-labs靶场通关-CSDN博客

XSS漏洞:prompt.mi靶场通关-CSDN博客

目录

0x00

0x01

0x02

0x03

0x04

0x05

0x06

0x07

0x08

0x09

0x0A

0x0B

0x0C

0x0D

0x0E

0x0F

0x10

0x11

0x12


本篇文章将会通过学习+练习的方式来对xss.hapozi.me靶场进行通关演示

这个靶场是一个在线平台,网址:alert(1)

进入网站后,会让你输入一个用户名,输入完就会跳转到第一关页面:

这里页面是很人性化的,将我们输入的代码、前端页面代码、后端代码都展示出来了

那么废话不多说,开始闯关ヾ(◍°∇°◍)ノ゙

0x00

根据前面通关别的靶场的经验,相信第一关一定是不是难为我们的,那就直接来进行弹窗

可以看到成功过关

0x01

很轻松的我们就来到了第一关,那就来试试进行弹窗

根据结果可以看到,这里我输入的alert被放到了一对<textarea>标签包裹住了,因此无法进行弹窗,那么我们来试着闭合这个标签然后再到后面进行弹窗:

成功过关 

0x02

现在来到了第二关,话不多数,尝试弹窗

可以看到这里我们输入的内容被放在了value里面包裹起来了,并且并没有对我们输入的内容进行什么限制,因此这里我想应该直接闭合">在其后面添加弹窗代码应该就可以成功弹窗吧,理论完成,下面进行实践:

果然和我想的是一样的嘛,成功过关 

0x03

现在是第三关,来试试弹窗

根据输出的结果和后端代码不难看出,这里将我们输入的()给过滤掉了,那么其实就很好解决了,在上一个靶场中我们也遇到过同样的问题,相信看过的小伙伴已经知道了怎么解决了,没错,直接将(),修改为``一对反引号即可

 成功过关

0x04

现在来到了第4关,直接试试弹窗:

可以看到,这里的后端代码 与前一关差不多是一样的,不过多了一个过滤就是我们上一关利用的``,那么也不用怕,因为我们还有方法:我们可以使用svg加上对()进行编码来绕过限制

成功过关 

0x05

很快就到了第五关了,尝试弹窗

可以看到这里我们输入的内容被放在了一对注释符中间,并且后端代码对-->进行了过滤,防止我们来闭合注释符,但是就像上一个把靶场同样的场景那样,虽然限制了-->但是我们可以通过--!>来闭合注释符,那么来实践一下:

 成功通关

0x06

现在来到了第六关,那么来看看这一关会有什么限制呢,试试

可以看到这一关的限制就比较多了,首先就是把auto字符串,和所有以on开头的,然后把/都给替换掉了,不过不要慌,我们可以使用换行的方式来绕过这个正则表达式对on事件的限制,那么实际使用一下

成功过关

0x07

来到了第7关,来试试弹窗

从结果和代码中都可以看到我们输入的值被包裹在了一对article标签并且这里对我们输入的值进行了过滤,对</>进行了过滤,因此我们无法提前闭合<article>标签,但是这里我们需要知道html的兼容性是比较强的,即使不闭合标签也可以解析,那么利用这一点可以试试看

成功弹窗

0x08

很快的,就来到了第8关,来试试看这一关有什么防御机制

从结果和代码中可以看到,输入的代码被包裹在一对style标签内,并且对输入的内容进行了替换,如果输入</style>替换成了坏人

这里我们需要知道,style>标签表示css样式表,不能执行JavaScript语句,即不能直接输入xss语句像<img scr="xxx">,其中img和src中间有空格,也就是说标签和属性之间是有空格的

</style>标签也是一样的,在style后面加入空格,加入空格后可以往后面加上属性,但是不加属性只加空格也是可以解析的,所以使用空格来闭合style标签从而绕过匹配,进行弹窗

 成功过关

0x09

现在来到了第9关,来测试一下,看对输入的内容有什么限制:

从后端代码可以看出,这里需要我们输入一个http://www.segmentfault.com/的格式才能成功匹配if语句进入html页面

我们可以使用onerror事件来绕过,去请求url,如果请求失败则触发事件然后等待超时后就可以触发事件弹窗

成功过关

0x0A

这里来到了第0x0A关

可以看到这里和上一关一样,都需要使用http://www.segmentfault.com/的格式才能成功匹配if语句进入html页面,与上一关不同的是,对输入的值进行了过滤 & ' " < > / 都进行了过滤 

但是这里可以使用像上一个靶场的那一关一样

浏览器支持这样的url:user:password@attacker.com。

意思是使用user:password登录到站点attacker.com.

所以本关我们可以使用url中@符号进行外部调用,在本地新建一个test.js文件,在文件中输入alert(1),然后再url中访问该文件来实现弹窗。

成功弹窗

0x0B

现在来到了0x0B关卡

可以看到,这里的限制就很简单,将我们输入的所有字符都进行了转大写,这个限制方式在上一个靶场中也遇到过,因此这里可以引入外部js文件就可以直接弹窗

成功过关

0x0C

现在来到了0x0C关,那么来试试弹窗

 

这一关可以看到不但把所有的字符转换为了大写,并且将script关键字进行了过滤,因此上一关使用的引入外部文件的方式来进行弹窗了

但是仔细看看这个限制我发现了一个bug,它只限制了script,可以试试进行双写绕过:

成功过关

0x0D

现在来到了0x0D关了,先来看看后端代码有什么限制

可以看到,这里对 / < " ' 进行了限制,因此我们无法进行闭合标签的操作

这里测试了一下发现可以通过回车逃过//注释,但是后面还有一个')无法进行弹窗

但是这里对/进行了限制,因此无法使用//进行注释后面的'),但是如果对前端语言比较熟悉的小伙伴应该知道还有一种注释的方式是-->

那么我们来试试使用这种方式来注释掉后面的')

成功过关

0x0E

现在来到了0x0E关,先来看看有什么限制

可以看到,这里不但将所有的字符都进行了大写操作,并且将第一个以<开头后面是一个字母的值替换为了_

这里我们可以使用特殊字符” ſ “(古英文的小写s),将其转化为大写后就变成了大写的S,然后使用外部引入的方式来进行弹窗

成功过关

0x0F

现在是英文字母的最后一关了,那么先来看看有什么限制

可以看到这里将我们输入的内容放在了img标签的onerror中济宁error打印,并且对输入的字符进行了过滤 & ' " <  > /都无法使用

这里我们可以先闭合前面的),然后再后面直接进行弹窗

成功过关

0x10

完成了英文的所有关,这里还有10-12关,因此我们继续闯

先来看看有什么限制

可以看到这里被放在了windows.data中

这里我在尝试进行绕过window.data后然后闭合前面的script再进行弹窗,居然直接就成功了

成功过关

0x11

倒数第二关了,来看看有什么限制

这一关的代码是非常多的,不如细看就知道对输入的字符有很多限制,并且可以看到输入的字符最终被放在了javascript:console.log中

不过这里也没有很难,多次尝试几次进行闭合就可以成功绕过,进行弹窗

0x12

可以看到这里也是将我们输入的内容放在了console.log中,并且对"进行了过滤,防止我们闭合

但是这一关问题也是不大的,通过多次尝试,换行来逃出限制,然后直接进行弹窗即可成功

到此,这个靶场也成功的通关了,通过这几个靶场的bypass确实觉得自己的水平也有了一点点提高,学些到了很多xss bypass 的技巧。常见的几个xss漏洞的靶场也都练习完成了,还有一些xss漏洞在后续的文章中也会演示,并且如果后面还有难度适中的xss靶场可以学习+练习,那我也会写通关文章分享给大家的 (^▽^)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JS取余运算符 %,ES2023 新增数组方法Array.at

取余运算符&#xff08;%&#xff09;的作用就是用来两个操作数进行相除运算之后的余数。 注意&#xff0c;两个操作数取余是有循环范围的&#xff0c;这个范围为 0 - 第二个参数 - 1。 如下图&#xff1a; 对于6取余的话&#xff0c;得到的取余数据就会一直在0-5之间进行循环…

克魔助手工具详解、数据包抓取分析、使用教程

目录 摘要 引言 克魔助手界面 克魔助手查看数据捕获列表 数据包解析窗口 数据包数据窗口 克魔助手过滤器表达式的规则 抓包过滤器实例 总结 参考资料 摘要 本文介绍了克魔助手工具的界面和功能&#xff0c;包括数据包的捕获和分析&#xff0c;以及抓包过滤器的使用方…

精品基于Uniapp+springboot农产品安全领域的信息采集系统App

《[含文档PPT源码等]精品基于Uniappspringboot农产品安全领域的信息采集系统App》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; 开发语言&#xff1a;Java 后台框架&#xff1a;sprin…

arcgis javascript api4.x以basetilelayer方式加载arcgis发布的栅格切片服务

需求&#xff1a; 以arcgis js api的basetilelayer加载arcgis发布的栅格切片服务 效果图&#xff1a; 其中和tileinfo和lods&#xff0c;这样获取&#xff1a; https://map.geoq.cn/arcgis/rest/services/ChinaOnlineCommunity/MapServer/?fpjson urltemplate&#xff1a; …

C++发展史

目录 什么是C C的发展史 C的重要性 C在实际工作中的应用 “21天教你学会C” 什么是C 先看看祖师爷&#xff0c;记得多拜拜&#x1f92d; C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的 程序&#xff0c;需要高度…

算法学习系列(二十三):最小生成树问题

目录 引言一、最小生成树问题二、Prim算法三、Kruskal算法 引言 这个最小生成树问题其实思想都非常的简单&#xff0c;然后代码也是比较简单的&#xff0c;很多人听到这个问题觉得难&#xff0c;比如说跟我一样&#xff0c;主要是因为不知道这个算法&#xff0c;就是一种未知的…

原生SSM整合(Spring+SpringMVC+MyBatis)案例

SSM框架是Spring、Spring MVC和MyBatis三个开源框架的整合&#xff0c;常用于构建数据源较简单的web项目。该框架是Java EE企业级开发的主流技术&#xff0c;也是每一个java开发者必备的技能。下面通过查询书籍列表的案例演示SSM整合的过程. 新建项目 创建文件目录 完整文件结…

CRM系统的销售漏斗是什么?如何提升销售效率?

​ CRM管理系统有许多重要的功能&#xff0c;很多人不太了解什么叫销售漏斗。网上关于CRM销售漏斗的讲解。看完以后仿佛懂了&#xff0c;细心想了想&#xff0c;好像没说透。下面说说CRM销售漏斗如何指导销售人员行动。简单来说就是分解销售目标、规划销售时间、预测销售业绩。…

【时间复杂度】时间复杂度优化法则简讲

一、引言 时间复杂度是衡量算法运行效率的一项重要指标&#xff0c;它描述了随着输入规模的增加&#xff0c;算法的执行时间如何增长。在算法设计与分析中&#xff0c;我们经常面临着优化时间复杂度的任务&#xff0c;以便提高程序的性能。本博客将深入探讨时间复杂度的优化法…

【MYSQL】事务隔离级别

脏读、幻读、不可重复读 脏读 一个事务正在对一条记录做修改&#xff0c;在这个事务完成并提交前&#xff0c;另一个事务也来读取同一条记录&#xff0c;读取了这些未提交的“脏”数据&#xff0c;并据此做进一步的处理&#xff0c;就会产生未提交的数据依赖关系。这种现象被形…

删除edge浏览器文本框储存记录值以及关闭自动填充

当我们点击输入框时总会出现许多以前输入过的信息。 一、删除edge浏览器文本框储存记录值 1、首先按下↓键选中你想删除的信息 2、然后按ShiftfnDel鍵(MAC)/ShiftDel鍵(Win)&#xff0c;就可以成功删除。 二、关闭自动填充。 1、在地址栏输入edge://wallet/settings跳转到以…

语言大模型的分布式训练与高效微调指南

原文&#xff1a;语言大模型的分布式训练与高效微调指南 - 知乎 目录 收起 1 分布式训练 2 ZeRO驱动的数据并行 3 全分片数据并行 4 实现 5 高效微调 6 实践指南 7 关于DeepSpeed和FSDP的更多内容 OneFlow编译 翻译&#xff5c;杨婷、宛子琳 最近语言大模型&#xff…

[windows]给WSL安装一个桌面gnome版本

【安装前提】 请提前安装好WSL系统&#xff0c;最好ubuntu系统>18.04 【安装步骤】&#xff1a; WSL 不支持 systemd 而 Gnome 桌面又是基于 systemd&#xff0c;所以先解决这个问题。 sudo apt update sudo apt install git git clone https://github.com/DamionGans/u…

redis数据安全(五)事务

一、概念&#xff1a; 1、介绍&#xff1a;Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令&#xff0c;一个事务中所有命令都会被序列化。在事务执行过程&#xff0c;会按照顺序串行化执行队列中的命令&#xff0c;其他客户端提交的命令请求不会插入到事务执行命…

尚无忧【无人共享空间 saas 系统源码】无人共享棋牌室系统源码共享自习室系统源码,共享茶室系统源码

可saas多开&#xff0c;非常方便&#xff0c;大大降低了上线成本 UNIAPPthinkphpmysql 独立开源&#xff01; 1、定位功能&#xff1a;可定位附近是否有店 2、能通过关键字搜索现有的店铺 3、个性轮播图展示&#xff0c;系统公告消息提醒 4、个性化功能展示&#xff0c;智能…

【JavaEE进阶】 图书管理系统开发日记——壹

文章目录 &#x1f332;序言&#x1f334;前端代码的引入&#x1f38b;约定前后端交互接口&#x1f343;后端服务器代码实现&#x1f6a9;UserController.java&#x1f6a9;BookController.java ⭕总结 &#x1f332;序言 该图书管理系统&#xff0c;博主将一步一步进行实现。…

秒懂Precision精确率、Recall召回率-附代码和案例

经常有同学目标检测评价指标含糊不清这次带你通俗易懂了解该知识 强烈推荐的博客&#xff1a; 更多有用知识&#xff0c;请点我 //☏:qq1309399183// 深度学习视觉必做项目 计算 precision&#xff08;精确率&#xff09;**和 recall&#xff08;召回率&#xff09;是评估分类…

Linux设备驱动开发学习笔记(等待队列,锁,字符驱动程序,设备树,i2C...)

1. 内核工具和辅助函数 1.1宏container_of container_of函数可以通过结构体的成员变量检索出整个结构体 函数原型&#xff1a; /* pointer 指向结构体字段的指针 container_type 结构体类型 container_field 结构体字段名称 返回值是一个指针 */ container_of(pointer, con…

智慧水务平台有哪些应用场景?

随着城市化进程的加速&#xff0c;城市水资源管理面临着越来越多的挑战。如何实现高效、智能的水资源管理&#xff0c;成为了城市管理者亟待解决的问题。智慧水务平台作为新一代信息技术在水务领域的深度应用&#xff0c;为城市水资源管理提供了全新的解决方案。 智慧水务平台的…

Tensorflow2.0笔记 - 基础数学运算

本笔记主要记录基于元素操作的,-,*,/,//,%,**,log,exp等运算&#xff0c;矩阵乘法运算&#xff0c;多维tensor乘法相关运算 import tensorflow as tf import numpy as nptf.__version__#element-wise运算&#xff0c;对应元素的,-,*,/,**,//,% tensor1 tf.fill([3,3], 4) ten…