xss-labs搭建及学习

搭建

搭建过程与一般的网站搭建差不多 参考资料
当出现这个界面就是成功了在这里插入图片描述

学习

学习资料
xss概念理解:XSS跨站脚本攻击
xss常见标签:XSS常见触发标签

level1-直接打

这里提示payload长度为4在这里插入图片描述查看一下源码在这里插入图片描述
发现get传参name的值test插入了html里头,还回显了payload的长度,那么就利用这个机制,get传参一个name,同时插入一段js代码

url?name=<script>alert()</script>

在这里插入图片描述

level2-双引号闭合

在这里插入图片描述提示payload还是4,就试试上一关的方法传上去,发现不行在这里插入图片描述查看源代码,发现上传的内容和转义的内容不一样在这里插入图片描述根据搜索查询:第一个test进行了html实体转义,但是第二个没有,只需要闭合掉双引号即可

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

在这里插入图片描述

level3-单引号闭合-onfocus事件绕过

先传一个基础的上去 在这里插入图片描述发现上下语句都用了html实体转义,输入一个123试试在这里插入图片描述感觉是单引号闭合绕过

'> <script>alert()</script> <'

但是还是失败了在这里插入图片描述发现上下依然被实体化了
看一下php源码在这里插入图片描述发现实体化函数,但是htmlspecialchars函数只针对<>大于小于号进行html实体化,根据搜索查询这里要利用onfocus事件绕过

onfocus事件在元素获得焦点时触发,最常与 < input > 、< select > 和 < a > 标签一起使用,以上面图片的html标签< input >为例,< input >标签是有输入框的,简单来说,onfocus事件就是当输入框被点击的时候,就会触发myFunction()函数,然后我们再配合javascript伪协议来执行javascript代码
原文链接:https://blog.csdn.net/l2872253606/article/details/125638898

可以利用这个事件来绕过<>号的过滤以达到执行js的目的,构造payload

' onfocus=javascript:alert() '

先上传
在这里插入图片描述再点击输入框来触发

在这里插入图片描述

level4-双引号闭合-onfocus事件绕过

输入测试语句123在这里插入图片描述发现为双引号闭合,而且有input标签,可以用onfocus事件绕过

" onfocus=javascript:alert() "

一样的先上传后点击即可在这里插入图片描述

level5-< a >href标签法

查看源码
在这里插入图片描述看上去好像跟上面的题目一样,试试看
在这里插入图片描述果然不行,发现input标签处有变化,看一下php源码在这里插入图片描述发现on被替换成了o_n,还有小写字母转化函数,根据查询,使用新方法a href标签法
href属性的意思是 当标签< a >被点击的时候,就会触发执行转跳,上面是转跳到一个网站,我们还可以触发执行一段js代码
添加一个标签得闭合前面的标签,构建payload

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

在这里插入图片描述这样就生成了一个xss的js伪协议,点击即可触发在这里插入图片描述

level6-大小写组合绕过

吸取教训,直接看php源码
在这里插入图片描述发现替换很多,刚刚的herf不能用了,要重新找个办法,发现没有上一关的小写函数了,尝试大小写绕过
那么这样的话下面三种方法都可以了

"> <sCript>alert()</sCript> <"
" Onfocus=javascript:alert() "
"> <a hRef=javascript:alert()>x</a> <"

原理就是利用大小写组合来绕过黑名单在这里插入图片描述

level7-双拼写绕过

看源码在这里插入图片描述刚刚的大小写绕过不能用了,这关就可以用双拼写绕过来解决。
比如:

oonn——on

这里用herf的方式

"> <a hrehreff=javasscriptcript:alert()>x</a> <"

在这里插入图片描述

level8-Unicode编码绕过

这关界面发生变化了在这里插入图片描述看看php在这里插入图片描述基本都过滤完了,input标签添加了html实体转化函数还把双引号也给实体化了, 添加了小写转化函数,还有过滤掉了src、data、onfocus、href、script、"
这里根据查询利用href的隐藏属性自动Unicode解码,可以插入一段js伪协议

javascript:alert()

Unicode编码后

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

之后点击友情链接触发在这里插入图片描述

level 9-unicode编码绕过+注释绕过

看看php文件在这里插入图片描述发现还是一堆黑名单,跟上一关一样,但是底下多了一个strpos函数
在这里插入图片描述因为这关黑名单与上一关一样,要采取unicode编码绕过,编码后不存在http那一串,所以要利用注释的方法在里面赛一个http://

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

在这里插入图片描述

level10-隐藏的input标签可以插入type="text"显示

这一关的界面没有输入payload的地方了,传个参试试在这里插入图片描述

参数不见了,查看phpp**加粗样式**发现这里传其他的参数会被隐藏,但是需要传t_sort,而且根据黑名单,发现<>被过滤了,所以使用onfocus事件绕过,由于这里输入框被隐藏了,需要添加type=“text”,构造payload

?t_sort=" onfocus=javascript:alert() type="text

在这里插入图片描述点一下输入框就可以了在这里插入图片描述

level11-http头传值-referer

随便传参,发现又被隐藏了,看看php
在这里插入图片描述在这里插入图片描述

发现新函数在这里插入图片描述这题的关键应该就是利用这个函数了,发现后面跟着referer,根据查询,可能是http头传值。
由于<>被和谐了,就还是用onfocus事件,构造一个http头,而且因为被隐藏了,还要加上type="text

Referer: " onfocus=javascript:alert() type="text

在这里插入图片描述在这里插入图片描述

level12-http头传值-UA头


用bp抓包改UA头即可

" onfocus=javascript:alert() type="text

在这里插入图片描述

level13-http头传值-cookie

随便传参,发现这个地方,cook长得像cookie,找找看
在这里插入图片描述
果然是在这里插入图片描述把值改了就行

" onfocus=alert() type="text 

点框框
在这里插入图片描述

level14-抽象

点进来一片空白,发现源代码里面有个链接在这里插入图片描述进去发现是个挂掉的网站,还是看后端在这里插入图片描述看了大佬的博客,这里点击那个链接就完成了,但是由于网站挂了所以跳转不了

level 15-文件包含

在这里插入图片描述发现有个没见过的js,点开来也是乱码,下面还有个ng-include:1.gif

g-include指令就是文件包含的意思,用来包含外部的html文件,如果包含的内容是地址,需要加引号

先试试看包涵第一关

?src='/level1.php'

在这里插入图片描述可以随便包涵之前的一关并对其传参,以达到弹窗的效果,看看php在这里插入图片描述发现有个html实体化函数可以包涵第一关并让第一关弹窗(注意,这里不能包涵那些直接弹窗的东西如< script >,但是可以包涵那些标签的东西比如< a >、< input >、< img>、< p >标签等等,这些标签是能需要我们手动点击弹窗的)这里包含个图片

?src='/level1.php?name=<img src=1 onmouseover=alert()>'

只要碰到图片就能触发在这里插入图片描述
后面根据了解ng-include文件包含,可以无视html实体化

level16-用回车代替空格绕过

看后端在这里插入图片描述先是将字母小写化了,再把script替换成空格,最后将空格给实体化。空格可以用回车来代替绕过,回车的url编码是%0a,再配合上不用/的< svg >标签

?keyword=<svg%0Aonload=alert(1)>

在这里插入图片描述

level17-flash

在这里插入图片描述首先点进去是支持此插件,而且有个embed标签,后缀是swf的文件,这是flash插件的标志,但是现在的游览器基本都不兼容flash了在这里插入图片描述所以,这题的解法很简单,首先得用一个支持flash插件的浏览器打开本关,但是现在的游览器基本都不支持了

level18-html实体化函数-flash

这题与17题差不多,需要有个支持flash的游览器,可以用onfocus事件
在这里插入图片描述

level19-Flash里插入js代码

这题说实话有点没搞懂,因为我没有flash,就去看了大佬的博客level19-Flash,这题需要swf反编译查看源码,光看php没用
其实就是往Flash里面插入一段js代码,然后手动执行

?arg01=version&arg02=<a href="javascript:alert()">here</a>

level20-Flash

因为涉及swf反编译,flash代码审计,参考大佬博客
这里就直接catch payload了在这里插入图片描述

?arg01=id&arg02=xss\"))}catch(e){alert(1)}//%26width=123%26height=123

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络安全审计员

在当今数字化时代&#xff0c;随着信息技术的迅猛发展&#xff0c;网络安全问题日益凸显&#xff0c;成为各行各业不容忽视的重要议题。特别是对于企业、政府机构等组织而言&#xff0c;网络安全不仅关乎数据资产的安全&#xff0c;更与组织的声誉、客户信任乃至法律法规的遵从…

安全模块设计:token服务、校验注解(开启token校验、开启签名校验、允许处理API日志)、获取当前用户信息的辅助类

文章目录 引言pom.xmlI 校验注解ApiValidationII token服务TokenService获取当前用户信息的辅助类III 域登录接口响应数据登陆用户信息引言 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/PO…

SpringBoot 2 后端通用开发模板搭建(异常处理,请求响应)

目录 一、环境准备 二、新建项目 三、整合依赖 1、MyBatis Plus 数据库操作 2、Hutool 工具库 3、Knife4j 接口文档 4、其他依赖 四、通用基础代码 1、自定义异常 2、响应包装类 3、全局异常处理器 4、请求包装类 5、全局跨域配置 补充&#xff1a;设置新建类/接…

京准电钟:NTP精密时钟服务器在自动化系统中的作用

京准电钟&#xff1a;NTP精密时钟服务器在自动化系统中的作用 京准电钟&#xff1a;NTP精密时钟服务器在自动化系统中的作用 NTP精密时钟服务器在自动化系统中的作用非常重要&#xff0c;特别是在需要高精度时间同步的场景中。NTP能够提供毫秒级的时间同步精度&#xff0c;这…

基于Redis 的分布式 session 图解

Redis 分布式 Session 工作原理 1. 传统 Session 的问题 在传统单服务器环境中&#xff0c;HTTP Session 存储在应用服务器的内存中。这在分布式系统中会导致问题&#xff1a; 用户的请求可能被分发到不同服务器&#xff0c;导致会话不一致服务器宕机会导致会话丢失需要依赖…

pikachu

暴力破解 基于表单的暴力破解 【2024版】最新BurpSuit的使用教程&#xff08;非常详细&#xff09;零基础入门到精通&#xff0c;看一篇就够了&#xff01;让你挖洞事半功倍&#xff01;_burpsuite使用教程-CSDN博客 登录页面&#xff0c;随意输入抓包&#xff0c;发送到攻击…

vmware:新装ubuntu无法使用ssh连接或者复制粘连

前言 如标题所示&#xff0c;我在使用vmware-workstation安装ubuntu22.04LTS桌面版虚拟机后&#xff0c;发现没办法使用ssh远程连接&#xff0c;或者与宿主机之间的复制粘连功能。 解决方案 卡了一天&#xff0c;以为是网络通讯问题&#xff0c;没想到是内部服务的问题。 远程连…

【uniapp原生】实时记录接口请求延迟,并生成写入文件到安卓设备

在开发实时数据监控应用时&#xff0c;记录接口请求的延迟对于性能分析和用户体验优化至关重要。本文将基于 UniApp 框架&#xff0c;介绍如何实现一个实时记录接口请求延迟的功能&#xff0c;并深入解析相关代码的实现细节。 前期准备&必要的理解 1. 功能概述 该功能的…

基于机器学习的结构MRI分析:预测轻度认知障碍向阿尔茨海默病的转化

摘要 阿尔茨海默病是一种致残性神经退行性疾病&#xff0c;目前尚无有效的治疗方法。预测阿尔茨海默病的诊断对患者的预后至关重要&#xff0c;但目前的阿尔茨海默病生物标志物检测方法具有侵入性、耗时且昂贵。因此&#xff0c;开发基于MRI的计算方法用于阿尔茨海默病的早期诊…

HTML——前端基础1

目录 前端概述 前端能做的事情​编辑 两步完成一个网页程序 前端工具的选择与安装 HTML HTML5介绍 HTML5的DOCTYPE声明 HTML基本骨架 文字标签 标题之标签 标签之段落、换行、水平线 标签之图片 标签之超文本链接 标签之文本 列表标签之有序列表 列表标签之无序…

量子计算可能改变世界的四种方式

世界各地的组织和政府正将数十亿美元投入到量子研究与开发中&#xff0c;谷歌、微软和英特尔等公司都在竞相实现量子霸权。 这其中的利害关系重大&#xff0c;有这么多重要的参与者&#xff0c;量子计算机的问世可能指日可待。 为做好准备&#xff0c;&#xff0c;我们必须了…

Jsmoke-一款强大的js检测工具,浏览器部署即用,使用方便且高效

目录标题 Jsmoke &#x1f6ac;&#x1f6ac; by Yn8rt使用方式界面预览功能特性支持的敏感信息类型 Jsmoke &#x1f6ac;&#x1f6ac; by Yn8rt ​ 该插件由 Yn8rt师傅 开发&#xff0c;插件可以理解为主动版的hae和apifinder&#xff0c;因为其中的大多数规则我都引用了&a…

让Word插上AI的翅膀:如何把DeepSeek装进Word

在日常办公中&#xff0c;微软的Word无疑是我们最常用的文字处理工具。无论是撰写报告、编辑文档&#xff0c;还是整理笔记&#xff0c;Word都能胜任。然而&#xff0c;随着AI技术的飞速发展&#xff0c;尤其是DeepSeek的出现&#xff0c;我们的文字编辑方式正在发生革命性的变…

HarmonyOS 5.0应用开发——多线程Worker和@Sendable的使用方法

【高心星出品】 文章目录 多线程Worker和Sendable的使用方法开发步骤运行结果 多线程Worker和Sendable的使用方法 Worker在HarmonyOS中提供了一种多线程的实现方式&#xff0c;它允许开发者在后台线程中执行长耗时任务&#xff0c;从而避免阻塞主线程并提高应用的响应性。 S…

《深度学习实战》第3集:循环神经网络(RNN)与序列建模

第3集&#xff1a;循环神经网络&#xff08;RNN&#xff09;与序列建模 引言 在深度学习领域&#xff0c;处理序列数据&#xff08;如文本、语音、时间序列等&#xff09;是一个重要的研究方向。传统的全连接网络和卷积神经网络&#xff08;CNN&#xff09;难以直接捕捉序列中…

10.【线性代数】—— 四个基本子空间

十、 四个基本子空间 1. 列空间 C ( A ) C(A) C(A) in R m R^m Rm2. 零空间 N ( A ) N(A) N(A) in R n R^n Rn3. 行空间 C ( A T ) C(A^T) C(AT) in R n R^n Rn4. 左零空间 N ( A T ) N(A^T) N(AT) in R m R^m Rm综述5. 新的向量空间 讨论矩阵 A m ∗ n A_{m*n} Am∗n​…

Windows上使用go-ios实现iOS17自动化

前言 在Windows上运行iOS的自动化&#xff0c;tidevice对于iOS17以上并不支持&#xff0c;原因是iOS 17 引入新通信协议 ‌RemoteXPCQUIC‌&#xff0c;改变了 XCUITest 的启动方式。 一、go-ios的安装 1、安装命令&#xff1a;npm i go-ios 2、安装完成后输入命令which io…

CBAM注意力机制详解与实现

前言&#xff1a; 在深度学习领域&#xff0c;注意力机制已成为提升模型性能的重要手段之一。CBAM&#xff08;Convolutional Block Attention Module&#xff09;作为一种轻量级且高效的注意力机制&#xff0c;被广泛应用于各种卷积神经网络中。 一、CBAM注意力机制概述 1.…

GCN从理论到实践——基于PyTorch的图卷积网络层实现

Hi&#xff0c;大家好&#xff0c;我是半亩花海。图卷积网络&#xff08;Graph Convolutional Network, GCN&#xff09;是一种处理图结构数据的深度学习模型。它通过聚合邻居节点的信息来更新每个节点的特征表示&#xff0c;广泛应用于社交网络分析、推荐系统和生物信息学等领…

给虚拟机配置IP

虚拟机IP这里一共有三个地方要设置&#xff0c;具体说明如下&#xff1a; &#xff08;1&#xff09;配置vm虚拟机网段 如果不进行设置&#xff0c;每次启动机器时都可能是随机的IP&#xff0c;不方便我们后续操作。具体操作是&#xff1a;点击编辑→虚拟网络编辑器 选择VMne…