xss靶场练习level 1-10

news2024/11/18 9:47:31
  • level 1

1.搭建靶场后打开第一题

2.点击图片,页面跳转后提示“payload长度为:4”,观察url 存在传参    ?name=test     ,且字符长度为4

3.查看网页源码,发现第一个点击图片跳转页面存在用户名提交,且未进行任何过滤,猜测存在xss4.修改name参数,发生弹窗,证明存在反射型xss

  • level 2----闭合标签

1.打开第二题

2.有输入框,尝试使用标签法,在输入框中插入<script>alert(1)</script>

3.查看网页源代码,在第15行发现,输入的< >符合被HTML字符实体化为  &lt  和 &gt,猜测在服务器端对keyword这个参数使用了htmlspecialchars()函数,但是value参数中的值未被恶意编码,其中输入的payload被赋值给value,可以考虑闭合value的参数值

4.尝试从标签中的属性进行突破,将属性中的><进行闭合,输入"><script>alert(1)</script>//

解题思路:第一次输入<script>alert(1)</script>时,

17行传参<input name=keyword value="<script>alert(1)</script>">

第二次输入"><script>alert(1)</script>时,

17行<input name=keyword value=""><script>alert(1)</script>//''>

因为加入" 和//  导致浏览器误认为1行分为三个部分,即第一个<input>标签内value传参为空,

将第二个红色<script>alert(1)</script>部分当作代码执行,由于加入//,浏览器将最后的紫色部分屏蔽,使页面实现弹窗效果。

<input name=keyword value=""><script>alert(1)</script>//''>

5.弹窗

  • level 3----单引号闭合并添加事件

1.对话框输入<script>alert(1)</script>

2.查看网页源码,发现与第二题相似,但17行value传参采用单引号闭合,且<>经过HTML字符实体化

猜测keywordvalue两个参数均使用了htmlspecialchars()函数

3.由于最后的< > 均被转义,无法逃出<input>标签,因此考虑事件驱动

输入' οnclick='alert(1)       然后点击“搜索”

解题思路:与level 2类似,都是通过构造语句,欺骗浏览器,使浏览器将value传参视为无,同时将输入的其他东西当作代码执行

当搜索框不输入任何东西时,17行<input name=keyword value=' '>

当输入' οnclick='alert(1) 时,17行<input name=keyword value=' ' οnclick='alert(1) '>

浏览器把绿色部分当作代码执行,便出现了之后的点击对话框tan

4.点击对话框,弹窗

  • level 4-----双引号闭合并添加事件

1.查看网页源代码,发现传参方式与level 3类似,只是把单引号改成双引号,所以直接套用

level 3的方法,将单引号改成双引号即可。

  • level 5----JavaScript伪协议

1.输入测试语句<script>alert(1)</script>  查看源代码

2.查看源代码发现17行<script>标签中被插入了下划线_      标签变为<scr_ipt>

3.换一条语句"οnclick="alert(1)    因为value传参用的是双引号,所以语句也用双引号,查看源码,发现17行onclick语句变成了o_nclick   观察服务器端源代码逻辑发现:

  • 将get方式传递到服务器端的keyword参数的值进行全小写的转换,然后赋值给str变量。
  • 通过str_replace()函数来破坏变量值中的敏感字符的语义。
  • 通过htmlspecialchars()函数处理之后显示到网页上,
  • 直接将进行敏感字符处理之后的变量值插入到<input>标签的value属性值中。

4.换一个标签执行语句"> <a href=javascript:alert('xss') > xss</a> //  点击“搜索”,页面出现xss的

蓝字链接,点击,出现弹窗

  • level 6----大小写绕过

1.尝试测试语句<script>alert(1)</script>     "><script>alert(1)</script>    "οnclick="alert(1)

"> <a href=javascript:alert('xss') > xss</a> //      发现标签中的字段都被加入下划线_

2.尝试改变标签大小写"ONCLICK="alert(1)         点击“搜索”,点击搜索框,出现弹窗

  • level 7----双写绕过

1.使用弹窗语句javascript:alert("xss")  检测,查看源代码,发现<h2>标签中的双引号被转义处理,且参数value中的script被删除。

使用"οnfοcus=javascript:alert('xss')>//     on被删除

使用"><a href=javascript:alert("xss")>xss</a>//   href和scrip被删除

使用"><a HrEf=javascript:alert("xss")>xss</a>//     均转化为小写
 

2.尝试双写绕过"><a hrehreff=javascriscriptpt:alert("xss")>xss</a>//    双写关键字

查看服务器源代码:

  • 对参数值转换成了小写
  • 将基本的关键字都删除了,但是均只执行了一次 所以可以双写关键字绕过

  • level 8----unicode编码绕过

1.插入测试语句javascript:alert("xss")
并查看网页源码,提交的参数值一个会插入到<input>标签的value属性值中,一个会插入到下方<a>标签的href属性值中。<a>标签中javascript被恶意添加下划线,参数value中的双引号被转义

插入"οnfοcus=javascript:alert('xss')>//  onfocus被恶意添加了下划线

闭合语句的引号被编码;onfocus、javascript均被恶意破坏语义;未删除关键字,则双写关键字绕过也不可以;大小写绕过也不可以;

2.尝试unicode编码测试语句javascript:alert("xss")

编码后:&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#34;&#120;&#115;&#115;&#34;&#41;

  • level 9

1.插入弹窗语句javascript:alert("xss")       查看网页源代码

get方式传参,提交的参数值插入到了标签的value属性值中,发现value值的单引号被转义。
但是在<a>标签的href属性中却并没有出现该参数值,而是显示的 "您的链接不合法?有没有!"

猜测这里可能对url地址做了识别。只有包含正常的url地址才能添加到href属性值中,因此构造一个有正常url地址的恶意代码javascript:alert('xss')http://www.qq.com
发现20行javscript被加入下划线

尝试大小写绕过,尝试双写绕过,尝试unicode全编码,尝试unicode只编码弹窗语句(url不编码)

最终发现只编码弹窗语句可以触发弹窗&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;
&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#120;&#115;&#115;
&#39;&#41;//http://www.qq.com

查看服务器源码

  • 判断如果字符中没有http://的话就会返回false,接着在href属性值中就会出现"您的链接不合法?有没有!"判断成功后,返回第一次出现的位置,将该字符插入到href属性值中了

  • level 10

1.无搜索框,尝试在url中输入测试语句<script>alert('xss')</script>
并查看网页源码

<h2>标签中的<  >被转义,并发现了三个<input>标签

2.找不到规律(查看服务器端网页源代码)


$str22说明是接收t_sort参数值的。$str33会删除t_sort参数值中的<>
这一关就只能是将js代码插入到<input>标签的属性值中来执行,而不能通过闭合<input>标签引入新的标签来触发xss了。

t_sort<input>标签,之前都是隐藏状态,但是通过构造参数响应发现只有它里面的值被改变了。

插入代码在url中的level10?后面插入代码t_sort="οnclick=alert(1) type=text"

出现弹窗

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

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

相关文章

wps及word通配匹配与正则匹配之异同

前言 今天在chatgpt上找找有什么比赛可以参加。下面是它给我的部分答案&#xff0c;我想将其制成文档裱起来&#xff0c;并突出比赛名方便日后查找。 这时理所当然地想到了查找替换功能&#xff0c;但是当我启用时却发现正则匹配居然没有了&#xff0c;现在只有通配匹配了。 …

c语言常见字符函数、内存函数(详讲)

前言&#xff1a; 其实在c语言当中是没有字符串这一概念的&#xff0c;不像c里面有string类型用来存放字符串。在c语言中我们只能把字符串放在字符串常量以及字符数组中。 1.常见字符串函数 1.1strlen size_t strlen ( const char * str );作用&#xff1a;用来求字符串中 …

MySQL之表的增删查改(1)

目录 一、插入数据 1、单行数据 全列插入 2、多行数据 指定列插入 3、插入否则更新 4、替换 二、读取 1、select列 2、where条件 3、结果排序 4、筛选分页结果 一、插入数据 首先创建一张表 mysql> CREATE TABLE students(-> id int unsigned primary key auto_incre…

背靠背 HVDC-MMC模块化多电平转换器输电系统-用于无源网络系统的电能质量调节MATLAB仿真模型

微❤关注“电气仔推送”获得资料&#xff08;专享优惠&#xff09; MATLAB2021版本 模型简介&#xff1a; MMC-HVDC模拟背靠背HVDC模块化多电平换流器&#xff08;MMC&#xff09;作为为整个电网供电的电能质量调节系统。因此&#xff0c;模块化多电平逆变器作为远程端转换器…

PyTorch 深度学习之用PyTorch实现线性回归Linear Regression with PyTorch(四)

0. Revision 1. PyTorch Fashion 2 Prepare dataset 广播机制 loss 3 Design model 文档 callable 4 Construct Loss and Optimizer 5 Training Cycle 总结 Test model

知识图谱:知识融合

知识融合简介 知识融合&#xff0c;即合并两个知识图谱(本体)&#xff0c;基本的问题都是研究怎样将来自多个来源的关于同一个实体或概念的描述信息融合起来。需要确认的是&#xff1a;等价实例、等价类/子类、等价属性/子属性。 一个例子如上图所示&#xff0c;图中不同颜色的…

【unity2023打包安卓工程】踩坑记录

这里写自定义目录标题 踩坑记录使用环境Unity的准备工作Windows10 SDKAndroidstudio第一个需要注意的地方第二个需要注意的地方第三个需要注意的地方第四个需要注意的地方第五个需要注意的地方 踩坑记录 踩了快一个星期的坑&#xff0c;希望能帮助到有需要的人 项目使用的是uni…

WorkPlus私有化部署IM即时通讯平台,构建高效安全的局域网办公环境

随着数字化转型的加速&#xff0c;政府机构与企业对高效、安全的即时通讯和协作工具的需求日益增长。企业微信和钉钉作为当前市场上较为常见的通讯工具&#xff0c;虽然在一定程度上满足了企业内部协作的需求&#xff0c;但仍存在一些问题&#xff0c;如数据安全性、私有化部署…

OpenCV实现图像的礼帽和黑帽

礼帽运算 黑帽运算 参数 cv.morphologyEx(img,op,kernel)参数&#xff1a; img : 要处理的图像op: 处理方式 代码实现 import numpy as np import cv2 as cv import matplotlib.pyplot as plt from pylab import mplmpl.rcParams[font.sans-serif] [SimHei]#读取图像img1 …

【Linux】系统编程基于阻塞队列生产者消费者模型(C++)

目录 【1】生产消费模型 【1.1】为何要使用生产者消费者模型 【1.2】生产者消费者模型优点 【2】基于阻塞队列的生产消费者模型 【2.1】生产消费模型打印模型 【2.2】生产消费模型计算公式模型 【2.3】生产消费模型计算公式加保存任务模型 【2.3】生产消费模型多生产多…

指针笔试题讲解

文章目录 题目答案与解析1、234、5、6、7、8、 题目 int main() {int a[5] { 1, 2, 3, 4, 5 };int *ptr (int *)(&a 1);printf( "%d,%d", *(a 1), *(ptr - 1));return 0; }//由于还没学习结构体&#xff0c;这里告知结构体的大小是20个字节 //由于还没学习结…

解答嵌入式和单片机的关系

嵌入式系统是一种特殊的计算机系统&#xff0c;用于特定任务或功能。而单片机则是嵌入式系统的核心部件之一&#xff0c;是一种在单个芯片上集成了处理器、内存、输入输出接口等功能的微控制器。刚刚好我这里有一套单片机保姆式教学&#xff0c;里面有编程教学、问题讲解、语言…

试图一文彻底讲清 “精准测试”

在软件测试中&#xff0c;我们常常碰到两个基本问题&#xff08;困难&#xff09;&#xff1a; 很难保障无漏测&#xff1a;我们做了大量测试&#xff0c;但不清楚测得怎样&#xff0c;对软件上线后会不会出问题&#xff0c;没有信心&#xff1b; 选择待执行的测试用例&#…

百胜中国,全面进击

“未来三年&#xff0c;每年净增约1800家新店。” 美股研究社关注到&#xff0c;2023年投资者日活动上&#xff0c;百胜中国根据2024至2026年的发展规划&#xff0c;启动了集团RGM2.0战略。 三年时间&#xff0c;门店数要达到20000家&#xff0c;平均每年新增门店约1800家&am…

【【萌新的SOC大学习之hello_world】】

萌新的SOC大学习之hello_world zynq本次hello world 实验需要 PS-PL Configuration 页面能够配置 PS-PL 接口&#xff0c;包括 AXI、HP 和 ACP 总线接口。 Peripheral IO Pins 页面可以为不同的 I/O 外设选择 MIO/EMIO 配置。 MIO Configuration 页面可以为不同的 I/O 外设具…

蓝牙核心规范(V5.4)11.2-LE Audio 笔记之LE Auido架构

专栏汇总网址&#xff1a;蓝牙篇之蓝牙核心规范学习笔记&#xff08;V5.4&#xff09;汇总_蓝牙核心规范中文版_心跳包的博客-CSDN博客 爬虫网站无德&#xff0c;任何非CSDN看到的这篇文章都是盗版网站&#xff0c;你也看不全。认准原始网址。&#xff01;&#xff01;&#x…

event.stopPropagation()

现在有如下 当点击子按钮的时候会触发子事件&#xff0c;同时也会触发父事件&#xff0c; 如何阻止呢 handleDownload(event) { event.stopPropagation(); 。。。。。。。。。。 },

积跬步致千里 || 可视化动图展示

可视化动图展示 目前只能在 jupyter notebook 中测试成功 %matplotlib notebook import numpy as np import matplotlib.pyplot as plt import timen 500 data np.random.normal(0,1,n)fig plt.figure() ax fig.add_subplot(111)fig.show() fig.canvas.draw()for i in ra…

【新版】系统架构设计师 - 案例分析 - 信息安全

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录 架构 - 案例分析 - 信息安全安全架构安全模型分类BLP模型Biba模型Chinese Wall模型 信息安全整体架构设计WPDRRC模型各模型安全防范功能 网络安全体系架构设计开放系统互联安全体系结构安全服务与安全机制…

LRU、LFU 内存淘汰算法的设计与实现

1、背景介绍 LRU、LFU都是内存管理淘汰算法&#xff0c;内存管理是计算机技术中重要的一环&#xff0c;也是多数操作系统中必备的模块。应用场景&#xff1a;假设 给定你一定内存空间&#xff0c;需要你维护一些缓存数据&#xff0c;LRU、LFU就是在内存已经满了的情况下&#…