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.rhkb.cn/news/240532.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL窗口函数(MySQL Window Functions)

1、窗口函数基本概念 官网地址&#xff1a;https://dev.mysql.com/doc/refman/8.0/en/window-functions.html 窗口可以理解为 记录集合&#xff0c;窗口函数就是在满足某种条件的记录集合上执行的特殊函数。 即&#xff1a;每条记录都要在此窗口内执行函数。 静态窗口&#x…

c#异形窗体遮罩效果

c#异形窗体遮罩效果&#xff0c;移动&#xff0c;关闭&#xff0c;最大化&#xff0c;最小化&#xff0c;还原操作 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Drawing2D…

C++核心编程——文件操作

本专栏记录C学习过程包括C基础以及数据结构和算法&#xff0c;其中第一部分计划时间一个月&#xff0c;主要跟着黑马视频教程&#xff0c;学习路线如下&#xff0c;不定时更新&#xff0c;欢迎关注。 当前章节处于&#xff1a; ---------第1阶段-C基础入门 ---------第2阶段实战…

蓝桥杯备赛 day 3 —— 高精度(C/C++,零基础,配图)

目录 &#x1f308;前言&#xff1a; &#x1f4c1; 高精度的概念 &#x1f4c1; 高精度加法和其模板 &#x1f4c1; 高精度减法和其模板 &#x1f4c1; 高精度乘法和其模板 &#x1f4c1; 高精度除法和其模板 &#x1f4c1; 总结 &#x1f308;前言&#xff1a; 这篇文…

RabbitMQ常见问题之高可用

文章目录 一、集群分类二、普通集群搭建1. 准备2. 配置3. 运行 三、镜像集群1. 介绍2. 启用方式3. 测试 四、仲裁队列1. 介绍2. 创建 五、Java连接RabbitMQ集群方式 一、集群分类 RabbitMQ的是基于Erlang语言编写,而Erlang又是一个面向并发的语言,天然支持集群模式。RabbitMQ的…

vue3实现动态侧边菜单栏的几种方式总结

基于自建json数据的动态侧边菜单栏 后端接口json数据 src/api/menuList.js const menuList [{url: ,name: 人员管理,icon: icon-renyuan,menuId: 1,children: [{url: /user,name: 用户管理,icon: icon-jurassic_user,menuId: 1001,children: []},{url: /role,name: 角色管…

vite 打包优化

✨专栏介绍 在当今数字化时代&#xff0c;Web应用程序已经成为了人们生活和工作中不可或缺的一部分。而要构建出令人印象深刻且功能强大的Web应用程序&#xff0c;就需要掌握一系列前端技术。前端技术涵盖了HTML、CSS和JavaScript等核心技术&#xff0c;以及各种框架、库和工具…

一篇综述洞悉医学大型语言模型的原理,应用和挑战

在过去的一年中&#xff0c;随着 GPT-4、LLaMA、Mistral&#xff0c;PaLM 等先进技术的突飞猛进&#xff0c;大型语言模型&#xff08;Large Language Models&#xff09;已经引领全球人工智能进入了一个全新的基础模型时代&#xff0c;这一时代不仅开启了技术创新的新篇章&…

opencv多张图片实现全景拼接

最近camera项目需要用到全景拼接&#xff0c;故此查阅大量资料&#xff0c;终于将此功能应用在实际项目上&#xff0c;下面总结一下此过程中遇到的一些问题及解决方式&#xff0c;同时也会将源码附在结尾处&#xff0c;供大家参考&#xff0c;本文采用的opencv版本为3.4.12。 首…

Base64编码原理解析

文章目录 一、Base64Base64编码的原理如下&#xff1a;以字符串"hello world"为例&#xff0c;它的ASCII码为&#xff08;下面&#x1f447;是ASCII码对照表&#xff09;&#xff1a;将这些ASCII码转换为二进制&#xff08;对照上表&#xff09;&#xff1a;将上述二…

Pyside6入门教学——编写一个UI界面并显示

1、安装Pyside6 输入下列命令安装Pyside6。 pip install Pyside6 2、设计UI 打开Qt设计工具&#xff08;在安装Pyside6包的目录下&#xff09;。 【注】我这用的是anaconda虚拟环境&#xff0c;所以我的路径是D:\App\Anaconda3\envs\snake\Lib\site-packages\PySide6。设计…

前端(html+css+javascript)作业--展现家乡的网页

期末期间&#xff0c;老师布置了前端作业&#xff0c;现在放到这里&#xff0c;给各位同志参考。 桂平市是广西壮族自治区的一个美丽的城市&#xff0c;拥有丰富的历史文化和自然景观&#xff0c;属于贵港市管辖&#xff0c;那为什么是看起来是市级而不是县级&#xff0c;其实他…

GaussDB(DWS)查询优化技术大揭秘

GaussDB(DWS)查询优化技术大揭秘 大数据时代&#xff0c;数据量呈爆发式增长&#xff0c;经常面临百亿、千亿数据查询场景&#xff0c;当数据仓库数据量较大、SQL语句执行效率低时&#xff0c;数据仓库性能会受到影响。本文将深入讲解在GaussDB(DWS)中如何进行表结构设计&#…

uni-app 经验分享,从入门到离职(年度实战总结:经验篇)——上传图片以及小程序隐私保护指引设置

文章目录 &#x1f525;年度征文&#x1f4cb;前言⏬关于专栏 &#x1f3af;关于上传图片需求&#x1f3af;前置知识点和示例代码&#x1f9e9;uni.chooseImage()&#x1f9e9;uni.chooseMedia()&#x1f4cc;uni.chooseImage() 与 uni.chooseMedia() &#x1f9e9;uni.chooseF…

5D动感影院新奇体验丰富环境特效7D互动影院

5D动感影院太火啦&#xff01;凭借真实互动感、全视景高清屏幕、立体环绕音效、D打造新颖沉浸式观影体验&#xff0c;成为年轻人/家长/小朋友的新晋打卡聚集地&#xff0c;时刻上演着精彩绝伦的视觉盛宴&#xff01; 1、5D动感影院【硬件组成】&#xff1a;动感平台、金属银幕、…

Alinx ZYNQ 7020 LED调试--in RAM

设置拨码开关为JTAG方式 烧写LED bit stream a. 点击“Program device”烧录程序到FPGA中&#xff08;重新上电程序就丢失了&#xff09; b. /01_led/led.runs/impl_1/led.bit 程序烧录到Flash中 ZYNQ与以往的直接烧录Flash不同&#xff0c;首先必须PS&#xff0c;然后烧…

PXE和kickstart无人值守安装

PXE高效批量网络装机 引言 1.系统装机的引导方式 启动 操作 系统 1.硬盘 2.光驱&#xff08;u盘&#xff09; 3.网络启动 pxe 重装系统&#xff1f; 在已有操作系统 新到货了一台服务器&#xff0c; 装操作系统 系统镜像 u盘 光盘 pe&#xff1a; 小型的 操作系统 在操…

HTTP/HTTPS代理IP在多线程爬虫项目中的实践

在多线程爬虫项目中&#xff0c;HTTP/HTTPS代理IP的实践主要包括以下几个关键步骤&#xff1a; 1. 收集代理IP资源&#xff1a; - 从免费或付费代理IP提供商、公开代理列表网站&#xff08;如西刺代理、无忧代理等&#xff09;抓取代理IP和端口信息。 - 存储这些IP到数据库或者…

统计学-R语言-5.3

文章目录 前言分位数统计量的标准误总结 前言 本篇文章即为概率与分布的最后一篇文章。 分位数 分位数函数是累积分布函数的反函数。 p-分位数是具有这样性质的一个值&#xff1a;小于或等于它的概率为p。 根据定义&#xff0c;中位数即50%分位数。 分位数通常用于置信区间的…

RT-Thread 15. list_timer与软定时器

1. 代码 void rt_thread_usr1_entry(void *parameter) {/* set LED2 pin mode to output */rt_pin_mode(LED2_PIN, PIN_MODE_OUTPUT);while (1){rt_pin_write(LED2_PIN, PIN_HIGH);rt_thread_mdelay(2000);rt_pin_write(LED2_PIN, PIN_LOW);rt_thread_mdelay(3000);} }int ma…