XSS-labs(反射型XSS) 靶场 1-13关 通关

目录

前言

XSS漏洞概述

XSS漏洞分类

通关日记

level1

分析

解题

​level2

分析

 解题

 方法一:闭合标签

方法二:闭合双引号

level3

分析 

解题

level4

分析

解题

level5

分析

解题

level6

分析

解题

level7

分析 

解体

level8

分析

解题

level9 

分析

解题

level10

分析

解题

level11

分析 

解题

level12

分析

解题

level13

分析 

解题


前言

XSS漏洞概述

XSS(跨站脚本攻击,Cross-Site Scripting) 是一种常见的Web安全漏洞,攻击者通过注入恶意脚本到网页中,当其他用户访问该页面时,恶意脚本会在其浏览器中执行,可能导致数据窃取、会话劫持等安全问题。

XSS漏洞分类

  1. 存储型XSS(Stored XSS)

    • 描述:恶意脚本被永久存储在目标服务器上,当用户访问包含该脚本的页面时,脚本被执行。

    • 示例:攻击者在论坛帖子中插入恶意脚本,其他用户查看该帖子时,脚本在其浏览器中执行。

  2. 反射型XSS(Reflected XSS)

    • 描述:恶意脚本作为请求的一部分发送到服务器,服务器将其反射回用户的浏览器并执行。

    • 示例:攻击者构造一个包含恶意脚本的URL,诱使用户点击,脚本在用户浏览器中执行。

  3. DOM型XSS(DOM-based XSS)

    • 描述:恶意脚本通过修改页面的DOM结构来执行,不涉及服务器端的反射。

    • 示例:攻击者利用前端JavaScript代码中的漏洞,直接修改DOM元素,导致恶意脚本执行。

通关日记

level1

分析

通过观察URL,发现时GET传参,修改传递的参数时,html页面发生改变,说明是直接传递到了html页面中,没有做过滤

解题

直接修改URL参数,注入恶意js语句

<script>alert(1)</script>

level2

分析

还是一样,我们先在URL处输入我们的恶意语句

http://127.0.0.1/xss/xsslabs/level2.php?keyword=<script>alert(1)</script>

发现没有触发,做了一个实体转换,将标签转换为了一个普通文本,所以在页面显示出来了。

之后我们查看网页源码

 发现我们注入的语句被放到了value中,这样浏览器就不会执行我们的注入语句,我们要构造闭合

而这时有两种思路,一种是只闭合双引号,重新写一个属性。另一种是闭合标签,之后再写一个标签

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

 解题

 方法一:闭合标签
"><script>alert(1)</script>
方法二:闭合双引号
" onclick="alert(1)

 

level3

分析 

我们查看源码,发现第三关比第二关多了一个htmlspecialchars函数(将特殊字符转换为HTML实体)默认转义双引号,不转义单引号。加上ENT_QUOTES参数后转义单引号

解题

a' onclick='alert(1)

level4

分析

我首先尝试了一下闭合双引号和单引号,意外的是用第二关闭合双引号的方法竟然也能成功,那它与第二关有什么区别呢?所以我查看源码,发现第四关过滤了'<' '>' 。所以其实它的意思是,不允许我们闭合input标签,不能发生用户交互

解题

a' autofocus onfocus='alert(1)

level5

分析

查看源码,发现第五关过滤了script和on,而且不是过滤为空,那么我们就不能双写绕过了。strtolower函数也防止了我们大小写绕过。那我们就要考虑有哪些标签用不到on了

解题

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

level6

分析

查看源码,发现第六关过滤script、on、src、data和href,但是它没有转小写的操作。那我们就可以使用大小写绕过的方法

解题

a" Onclick="alert(1)

level7

分析 

第七关过滤了script、on、src、data和href,也转小写了,但是他过滤是过滤为空,此时我们就可以双写绕过了

解体

a" oonnclick="alert(1)

level8

分析

在第七关的基础上,第八关对双引号做了过滤。我们先随便输入一个恶意语句测试一下

很好看出,input我们已经用不了了,我们可以将目光转向a标签。虽然他对script有过滤但是我们可以将javascript实体编码传入。

解题

&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert(1)javascript:alert(1)

level9 

分析

第九关的源码比第八关多了一个对http://的检查如果没有就会这样输出

 那我们不是只需要在第八关的基础上将alert(1)改为alert('http://')不就可以了吗

解题

&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert('http://')

 

level10

分析

 检查网页源码

发现他有三个input标签,但是网页却什么都没有,type=hidden是隐藏的。那我们应该测试这三个input看看有没有变化 。经过测试,只有t_sort有问题

http://127.0.0.1/xss/xsslabs/level10.php?keyword=well%20done!&t_sort=a%22%20type=%22text%22

那接下来我们在t_sort传值不就ok了吗?

解题

http://127.0.0.1/xss/xsslabs/level10.php?keyword=well%20done!&t_sort=a%22%20onclick=alert(1)%20type=%22text

 

level11

分析 

第十一关与第十关相比,它的源码多了t_ref,并且在t_sort进行了过滤,那我们就要在t_ref上下文章了。我们可以从源码看出来 t_ref的value值其实就是HTTP_REFERER。而对于referer我们可以使用hackbar插件来进行设置。那我们把referer改成我们的恶意语句不就成功了?

解题

level12

分析

第12关和第11关相比,只是从修改referer变成了ua

解题

level13

分析 

13关与前两关唯一的区别就是,t_cook的value值是接受的user,我们只需要在构造的时候加上user=即可。

解题

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

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

相关文章

GPT-5 将免费向所有用户开放?

GPT-5 将免费向所有用户开放&#xff1f; 硅谷知名分析师 Ben Thompson 最近与 OpenAI CEO Sam Altman 进行了一场深度对谈&#xff0c;其中Sam Altman透漏GPT-5将免费向大家发放。 OpenAI 这波操作可不是一时冲动&#xff0c;而是被逼出来的。DeepSeek 这个新秀横空出世&am…

【杂记二】git, github, vscode等

一、前言 暂时空着... 二、git 2.1 可能的疑问 1. VSCode 项目名和 GitHub 仓库名是否需要一致&#xff1f; 不需要一致。 VSCode 项目名&#xff08;也就是你本地的文件夹名字&#xff09;和 GitHub 仓库名可以不一样。 Git 是一个分布式版本控制系统&#xff0c;它主要关…

数学爱好者写的编程系列文章

作为一个数学爱好者&#xff0c;我大学读的专业却不是数学专业&#xff0c;而是跟计算机有关的专业。原本我对编程一窍不通&#xff0c;平时上课也是在看数学文献&#xff0c;作业基本靠同学&#xff0c;考试及格就行。不过后来因为毕业的压力&#xff0c;我还是拥抱编程了&…

FPGA 以太网通信(四)网络视频传输系统

一、网络视频传输系统 网络视频传输系统使用ov5640摄像头采集数据&#xff0c;通过组件UDP帧将视频数据实时传输给上位机。 ov5640视频传输带宽 像素分辨率设为640x480&#xff0c;帧率设为60帧&#xff0c;像素格式为RGB565&#xff0c;传输带宽为 640 x 480 x 16bit x 60 fps…

[leetcode]1631. 最小体力消耗路径(bool类型dfs+二分答案/记忆化剪枝/并查集Kruskal思想)

题目链接 题意 给定 n m n\times m nm地图 要从(1,1) 走到 (n,m) 定义高度绝对差为四联通意义下相邻的两个点高度的绝对值之差 定义路径的体力值为整条路径上 所有高度绝对差的max 求所有路径中 最小的路径体力值是多少 方法1 这是我一开始自己写的记忆化剪枝 比较暴力 时…

DeepSeek写打台球手机小游戏

DeepSeek写打台球手机小游戏 提问 根据提的要求&#xff0c;让DeepSeek整理的需求&#xff0c;进行提问&#xff0c;内容如下&#xff1a; 请生成一个包含以下功能的可运行移动端打台球小游戏H5文件&#xff1a; 要求 可以重新开始游戏 可以暂停游戏 有白球和其他颜色的球&am…

webpack使用详细步骤

项目描述 本项目 webpack 的基本使用。 webpack 官方&#xff1a;https://webpack.docschina.org/concepts/ Element-plus 官方&#xff1a;https://element-plus.sxtxhy.com/zh-CN/ Vue3 官方&#xff1a;https://cn.vuejs.org/ 项目组成明细 每个步骤完成后重新执行 npm run …

【STM32实物】基于STM32的太阳能充电宝设计

基于STM32的太阳能充电宝设计 演示视频: 基于STM32的太阳能充电宝设计 硬件组成: 系统硬件包括主控 STM32F103C8T6、0.96 OLED 显示屏、蜂鸣器、电源自锁开关、温度传感器 DS18B20、继电器、5 V DC 升压模块 、TB4056、18650锂电池、9 V太阳能板、稳压降压 5 V三极管。 功能…

【记一次】AI微调训练步数计算方式

llama微调训练步数计算方式,以下数据为假设 一、关键参数解析 总样本数&#xff1a;Num examples 1,047 表示训练数据集包含 1,047 个样本。 训练轮数&#xff1a;Num Epochs 300 表示整个训练集将被遍历 300 次。 总批次大小&#xff1a;Total train batch size 80 表示…

python-selenium 爬虫 由易到难

本质 python第三方库 selenium 控制 浏览器驱动 浏览器驱动控制浏览器 推荐 edge 浏览器驱动&#xff08;不容易遇到版本或者兼容性的问题&#xff09; 驱动下载网址&#xff1a;链接: link 1、实战1 &#xff08;1&#xff09;安装 selenium 库 pip install selenium&#…

yaffs

YAFFS&#xff08;Yet Another Flash File System&#xff09;是专为NAND闪存设计的日志结构文件系统&#xff0c;其核心原理围绕NAND闪存的特性优化数据管理。以下是其关键原理的详细说明&#xff1a; 1. NAND闪存适配 写入限制&#xff1a;NAND闪存需按页写入&#xff08;通…

git的底层原理

git的底层原理 三段话总结git&#xff0c; 1. 工作原理&#xff1a;git管理是一个DAG有向无环图&#xff0c;HEAD指针指向branch或直接指向commit&#xff0c;branch指向commit&#xff0c;commit指向tree&#xff0c;tree指向别的tree或直接指向blob。 2. git所管理的一个目录…

【计算机网络原理】选择题+简答题

文章目录 选择题网络基础IP网络拓扑 OSI七层模型协议HDLCTCP/IP 交换技术网络安全数字签名 算法与策略 简答题UDPTCP 选择题 网络基础 下列域名中&#xff0c;属于国际顶级域名的是&#xff08;&#xff09; A. us B. tom C. edu D. int 下列关于光纤传输介质的叙述中错误的是…

Android数据加密方案

Android数据加密方案 前言 在移动应用开发中,数据安全是一个永恒的话题。Android应用中往往需要存储和传输敏感数据,如用户密码、支付信息、个人隐私等。本文将深入介绍Android平台上的数据加密方案,帮助开发者构建安全可靠的数据保护机制。 基础知识 1. 加密算法分类 …

神聖的綫性代數速成例題13. 非齊次方程組解的性質、非齊次方程組解的討論

綫性空間的維數&#xff1a; 若綫性空間中存在一組綫性無關的矢量&#xff0c;使得中的任意矢量 都可以由綫性表示&#xff0c;則稱為綫性空間的維數&#xff0c;記作&#xff0c;稱為的一組基。 基與座標變換&#xff1a; 設和是維綫性空間的兩組基&#xff0c;且&#xff0c;…

github代理 | 快速clone项目

代理网址&#xff1a; https://ghproxy.com/ https://ghproxy.com/代理网址&#xff1a; https://ghproxy.com/ 比如需要克隆的项目git地址为&#xff1a;https://github.com/AUTOMATIC1111/stable-diffusion-webui.git git clone https://ghproxy.com/https://github.com/AUTO…

Kafka集成Debezium监听postgresql变更

下载postgres的插件&#xff1a;https://debezium.io/documentation/reference/2.7/install.html 2.7版本支持postgresql12数据库。 debezium-connector-postgres-2.7.4.Final-plugin.tar.gz 上传插件并解压 mkdir /usr/local/kafka/kafka_2.12-2.2.1/connector cd /usr/local…

『uniapp』简单文本复制文字 富文本内容复制文字(详细图文注释)

目录 text组件错误代码示例成功代码总结 欢迎关注 『uniapp』 专栏&#xff0c;持续更新中 欢迎关注 『uniapp』 专栏&#xff0c;持续更新中 text组件 官方文档可知app端用selectable可实现文本选中进而可复制,也就是说text标签内部的文本就可以复制了 https://uniapp.dclou…

RestTemplate和RPC区别

RestTemplate是Spring框架中用于进行RESTful风格的HTTP请求的模板类&#xff0c;通常用于与外部服务进行通信。它基于HTTP协议&#xff0c;使用GET、POST、PUT、DELETE等HTTP方法来进行通信&#xff0c;传输的数据通常使用JSON或XML格式。它是一种基于资源的通信方式&#xff0…

算法模型从入门到起飞系列——背包问题(探索最大价值的掘金之旅)

文章目录 前言一、背包问题溯源&#xff08;动态规划&#xff09;1.1 动态规划的概念1.2 动态规划的基本步骤1.3 动态规划的实际应用 二、背包问题2.1 背包问题衍生2.2 0-1背包2.2.1 0-1背包描述2.2.2 0-1背包图解2.2.3 0-1背包代码刨析 2.3 完全背包2.3.1 完全背包描述2.3.2 完…