xss前十二关靶场练习

news2024/10/7 10:24:19

目录

一、xss原理和分类

1.原理

2.分类:xss分为存储型和反射型以及dom型

(1)反射性

(2)存储型

(3)dom型

二、靶场关卡练习​编辑

1.第一关

2.第二关

3.第三关

4.第四关

5.第五关

6.第六关

7.第七关

8.第八关

9.第九关

10.第十关

11.第十一关

12.第十二关

三、总结


一、xss原理和分类

1.原理

        xss叫做跨站脚本攻击,指的是攻击者利用网页的漏洞,在我们的页面插入我们恶意的script链接,诱导我们的用户去点击,从而触发我们的链接获取用户的cookie值,从而获取网页的的权限

2.分类:xss分为存储型和反射型以及dom型

(1)反射性

        攻击者通过构建一个payload链接,然后诱导我们的用户去点击链接,当用户点击链接后,去访问我们正常的服务器,我们的服务器将正常的页面的代码和xss链接返回给我们的浏览器,浏览器正常解析我们的页面和恶意payload完成后去访问我们的恶意服务器,我们的攻击者就可以从恶意的服务器上获取用户的cookie和信息。

(2)存储型

        攻击者通过留言板等,在留言板处提交我们的script的恶意脚本存储在我们的服务器上,当用户访问我们的服务器的时候,服务会将携带有恶意脚本的链接以及正常的页面返回给我们的浏览器,我们的浏览器正常的去解析我们的页面代码和恶意代码,这时候就会去访问我们的恶意服务器,我们的攻击者就可以从恶意的服务器上获取到用户信息

(3)dom型

        其实和我们的反射型很相同

二、靶场关卡练习

1.第一关

在我们的url上随便写入一个aaa看一下我们的源代码注入在哪里

这时候我们直接在url上写一个script标签

<script>alert(1)</script>

成功弹窗

2.第二关

我们在输入栏输入点击就会触发弹窗的代码,查看源码发现没逃逸出双引号

οnclick="alert(1)"

我们尝试去逃逸出我们的双引号,然后点击搜索出现弹窗

aaa" οnclick=''alert(1)

3.第三关

在输入栏输入点击代码看是否有弹窗,再看我们的源代码发现我们的双引号被过滤了

aaa" οnclick="alert(1)

尝试使用单引号看是否可以绕过过滤,点击搜索发现出现弹窗

aaa' οnclick='alert(1)

4.第四关

在输入栏输入aaa"看我们提交的内容到了哪里,看源代码

在我们的输入栏输入点击触发脚本,发现出现弹窗

aaa" οnclick="alert(1)

5.第五关

在输入栏输入点击触发弹窗代码,查看源码我们发现on被过滤为o_n无法逃逸,无法出现弹窗

aaa" οnclick="alert(1)

我们尝试换成其他的恶意脚本弹窗,查看源码发现我峨嵋你的script被过滤为sc_ript还是无法弹窗

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

我们尝试利用链接弹窗看能否执行

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

我们点击链接,查看源码发现成功的绕过并出现了弹窗

6.第六关

我们继续使用onclick点击触发,查看源码发现我们的on被过滤为o_n

aaa" οnclick="alert(1)

我们尝试使用链接方式看能否触发,查看源码发现我们的href被过滤为了hr_ef,也无法弹窗

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

我们不妨换一种思路既然全被过滤了,能否使用大小写进行绕过,发现成功绕过并出现弹窗

aaa" ONclick="alert(1)

7.第七关

我们继续尝试在输入栏输入点击触发脚本,我们查看源码发现我们的on被过滤了,弹窗失败

aaa" οnclick="alert(1)

我们的on被过滤了,我们尝试双写on看是否被过滤,查看源码发现绕过并成功弹窗

aaa" oonnclick="alert(1)

8.第八关

我们查看源码发现被执行的是在a标签内的,我们使用a标签弹窗,发现我们的script被过滤为scr_ipt,尝试使用大小写绕过结果自动过滤为小写,都无法弹窗

javascript:alert(1)

javaSCRIPT:alert(1)

我们尝试使用html编码,发现成功注入,原因是我们的html编码是由js执行编译的。

java&#115;&#99;&#114;&#105;&#112;&#116;:alert(1)

点击友情链接,发现弹窗成功。

9.第九关

我们查看源码发现被执行的部分还是在a标签里面,我们输入弹窗脚本发现提示连接不合法

javascript:alert(1)

我们尝试加上http头部,虽然成功注入但是我们的script被过滤为scr_ipt

http://javascript:alert(1)

我们尝试html实体编码,发现成功绕过但是点击链接并未成功触发,我们需要绕过http://

http://java&#115;&#99;&#114;&#105;&#112;&#116;:alert(1)

我们尝试使用//绕过http://,原理是在//在编译的过程可以理解为注释符号,可以注释后面的内容,成功的弹窗

java&#115;&#99;&#114;&#105;&#112;&#116;:alert(1)//http://

10.第十关

我们发现没有注入的输入栏,我们查看源码发现存在隐藏的输入栏,我们在url上尝试进行注入,我们发现t_link和t_history无法成功注入

?&t_link=aaa

?&t_history=aaa

我们尝试注入t_sort发现成功,我们找到了注入点尝试进行脚本注入

?&t_sort=aaa"

我们尝试注入触发弹窗脚本,但是我们需要注意的是需要有文本框能够点击

?&t_sort=aaa" type="text" οnclick="alert(1)"

点击我们的文本文框,发现成功触发弹窗

11.第十一关

我们直接查看源码,发现存在隐藏的文本框可以触发弹窗,我们发现t_refer特别像我们的头部字段,所以我们直接利用我们火狐浏览器的hackbar插件,传递我们头部字段

选择我们的referer,然后输入我们的脚本

aaa" type="text" οnclick="alert(1)

点击提交,成功的弹窗

12.第十二关

我们直接查看源码发现存在的隐藏的文本框,我们发现有一个叫做t_ua,我们猜测会不会是user agent我们利用hackbar进行测试

我们在hackbar上勾选我们的user agent,在里面输入我们的点击弹窗脚本

aaa" type="text" οnclick="alert(1)"

我们点击文本框,发现成功的弹窗

三、总结

        一般存在xss漏洞的我们先看源码,看在哪里触发的,然后根据自己的所学不停的尝试去绕过,注意方法。

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

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

相关文章

flutter plugins插件【三】【Flutter Intl】

3、 Flutter Intl 多语言国际化 在Android Studio中菜单Tools找到flutter intl创建多语言配置。 创建后会在pubspec.yaml出现 flutter_intl:enabled: true 在工程的lib会生成l10n与generated文件夹 l10n包含 intl_en.arb intl_zn.arb 我们在intl_en.arb添加 { home: &quo…

常见的存储结构

分析&回答 本文只作为了解&#xff0c;让大家理解 B数跟透传&#xff0c;可以不刷哈。 常见的存储结构&#xff1a; 我们计算机的主存基本都是随机访问存储器(Random-Access Memory&#xff0c;RAM)&#xff0c;他分为两类&#xff1a;静态随机访问存储器&#xff08;SRA…

iPhone 15 Ultra都要来啦?顶配8GB 内存、2TB存储,满足任何想象

据相关媒体透露&#xff0c;苹果计划在今年9月推出全新的iPhone 15系列。除了已确认的iPhone 15 Pro和iPhone 15 Pro Max之外&#xff0c;还有一款名为iPhone 15 Ultra至尊版的机型将会问世。 这款iPhone 15 Ultra将成为苹果旗舰系列的巅峰之作&#xff0c;预计将配备更高配置和…

【算法竞赛宝典】语言之争

【算法竞赛宝典】语言之争 题目描述代码展示 题目描述 代码展示 //语言之争 #include<fstream> #include<string>using namespace std;ifstream cin("language.in"); ofstream cout("language.out");string a; int n;int main() {int i;bool …

快速建设数字工厂管理系统,需要做好哪些准备

随着工业4.0的推进&#xff0c;数字工厂管理系统已经在全球范围内得到了广泛的应用。在中国&#xff0c;许多制造业企业也逐步认识到数字化转型的重要性&#xff0c;开始积极探索和实施数字工厂管理系统。那么&#xff0c;在快速建设数字工厂管理系统的过程中&#xff0c;需要做…

SpringBoot 使用MyBatis分页插件实现分页功能

SpringBoot 使用MyBatis分页插件实现分页功能 1、集成pagehelper2、配置pagehelper3、编写代码4、分页效果 案例地址&#xff1a; https://gitee.com/vinci99/paging-pagehelper-demo/tree/master 1、集成pagehelper <!-- 集成pagehelper --> <dependency><gr…

大数据课程K17——Spark的协同过滤法

文章作者邮箱&#xff1a;yugongshiyesina.cn 地址&#xff1a;广东惠州 ▲ 本章节目的 ⚪ 了解Spark的协同过滤概念&#xff1b; 一、协同过滤概念 1. 概念 协同过滤是一种借助众包智慧的途径。它利用大量已有的用户偏好来估计用户对其未接触过的物品的喜好程…

最快速度!北京银行6个月完成40个业务系统数字化升级

近日&#xff0c;北京银行的数字化升级步调不断加快。过去 6 个月&#xff0c;基于原生分布式数据库 OceanBase&#xff0c;北京银行已完成包括客户信息系统等在内的 40 个关键业务系统升级。 北京银行将数字化转型作为统领“五大转型”的发展战略&#xff0c;要以技术为创新驱…

开发部门源代码防泄密方案

在企业内部&#xff0c;最核心的部门无外乎企业的研发部门&#xff0c;研发部门可以说是每一家企业的核心动力&#xff0c;研发部门研发的资料一般为源代码、图纸两种类型最多。那么企业投入大最的人力物力&#xff0c;当研发离职时&#xff0c;都会把在企业做过的源代码或图纸…

Systrace分析App性能学习笔记

学习Gracker Systrace系列文章&#xff0c;总结使用Systrace分析App性能的方法。推荐想通过Systrace学习Framework的同学&#xff0c;去看原文。 文章目录 概述Systrace使用流程Systrace 文件生成图形方式(不推荐)命令行方式 Systrace分析快捷键使用帧状态线程状态查看线程唤醒…

使用正则表达式在中英文之间添加空格

有时为了排版需要&#xff0c;我们可能需要在文章的中英文之间添加空格&#xff0c;特别是中文中引用了英文单词时&#xff0c;这种情况使用正则表达式整体修订是最明智的做法。首先&#xff0c;推荐使用在线的正则表格式工具&#xff1a;https://regex101.com/ , 该工具非常强…

抖音小程序开发教学系列(1)- 抖音小程序简介

章节一&#xff1a;抖音小程序简介 1.1 抖音小程序的背景和概述 抖音小程序的发展背景和市场趋势&#xff1a; 抖音作为一款热门的短视频社交平台&#xff0c;用户群体庞大&#xff0c;社交共享的特性也为小程序的发展提供了广阔的空间。抖音小程序作为抖音在社交和用户粘性…

【算法竞赛宝典】统计字符

【算法竞赛宝典】统计字符 题目描述代码展示 题目描述 代码展示 //统计出其中英文字母、空格、数字和其他字符的个数 # include <iostream> #include <cstdlib>using namespace std;int main() {freopen("letter.in", "r", stdin);freopen(&q…

软件产品鉴定测试

1. 服务流程 2. 服务内容 该项测试从技术和应用的角度对商用软件产品的质量特性进行全面地、系统地测试和评估&#xff0c;测试内容涵盖了功能性测试、性能测试、可靠性测试、易用性测试、维护性测试及可移植性测试。 3. 周期 7-15个工作日 4. 报告用途 可作为进行省级、国…

支付宝使用OceanBase的历史库实践分享

为解决因业务增长引发的数据库存储空间问题&#xff0c;支付宝基于 OceanBase 数据库启动了历史库项目&#xff0c;通过历史数据归档、过期数据清理、异常数据回滚&#xff0c;实现了总成本降低 80%。 历史数据归档&#xff1a;将在线库&#xff08;SSD 磁盘&#xff09;数据归…

Javase | IO流

目录&#xff1a; 1.输入 (Intput/Read)2.输出 (Output/Write)3.IO4.IO流5.IO流的分类&#xff1a;5.1 分类总述5.2 按照 “流的方向” 进行分类5.3 按照 “读取数据的方式” 进行分类 6.IO包下要重点掌握的流&#xff1a;6.1 文件专属 (流)6.2 转换流 ( 将字节流转换为字符流 …

解决npm install报错: No module named gyp

今天运行一个以前vue项目&#xff0c;启动时报错如下&#xff1a; ERROR Failed to compile with 1 error上午10:19:33 error in ./src/App.vue?vue&typestyle&index0&langscss& Syntax Error: Error: Missing binding D:\javacode\Springboot-MiMall-RSA\V…

【STM32】DMA初步使用

DMA简介 DMA(Direct Memory Access)—直接存储器存取&#xff0c;是单片机的一个外设&#xff0c;它的主要功能 是用来搬数据&#xff0c;但是不需要占用 CPU&#xff0c;即在传输数据的时候&#xff0c;CPU 可以干其他的事情。 以STM32F103单片机为例 F03有DMA1和DMA2两组DM…

项目总结知识点记录-文件上传下载(三)

&#xff08;1&#xff09;文件上传 代码&#xff1a; RequestMapping(value "doUpload", method RequestMethod.POST)public String doUpload(ModelAttribute BookHelper bookHelper, Model model, HttpSession session) throws IllegalStateException, IOExcepti…

windows如何更改/禁用系统更新

提示&#xff1a;首先说明这属于将更新时间更改&#xff0c;不过你可以的将更新时间更改为十年一百年 废话不多说开始正文&#xff1a; 1.首先:winR打开运行&#xff0c;输入regedit&#xff0c;进入注册表编辑器 2.进入编辑器后依次点击&#xff1a;HKEY_LOCAL_MACHINE\SOFT…