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

xss-lab靶场4-7关基础详解

前言:

仅作为练习,复盘

推荐html在线运行平台,弹窗标签可以在平台运行,看语句是否能正常弹窗

HTML/CSS/Javascript在线代码运行工具 | 菜鸟教程

内容:

第四关

打开一看,输入<script>alert(1)</script>,看过滤了什么,好像将尖括号过滤了,实体化了,

但是有<input>标签,不需要再重新输入标签,

利用<input>标签,重新构造onclick函数即可造成弹窗

答案为:"οnclick="alert(1)

在重新查看源代码,看过滤了什么

过滤了<>,相当于实体化编码了,

利用前提:存在<input>等危险标签,且双引号可以闭合name字段,重新构造onclick函数

总结思路:过滤了<>,但是还存在危险标签<input>,并且未过滤双引号,导致可以闭合value字段,所以可以构造onclick字段造成弹窗

第五关

我直接输入了:"οnclick="alert(1),看是否有变化,直接将on改成了o_n,我想再去看input标签是否有不含on的参数,结果发现没有,怎个回事,然后这关也是过滤了<>

我想出来的方法是大写绕过,这个好像是针对windows系统奏效的,然后双写绕过(这个肯定不行),想不出来其他方法了,就想到大小写绕过,但是有转化函数,将大写字母全转为小写字母了

突然想到了有个编码绕过,但是我不知道怎么用,其实我之前提前看过答案了,才知道有这个方法

无解,好像想错了,离谱,看下答案,ok

现在知道了将on替换成o_n,和过滤掉on没有很大区别了

替换的字符有,

        on、ri替换为o_n、r_i

排错<script>标签,还有包含on的函数,寻找其他可用的标签以及函数

思路

1、on被替换成o_n,意味着input标签不能使用,因为input标签里的函数都带有on字段

2、寻找其他标签,只要不带有ri即可,

那就找<a>标签,其中里面的函数有不带on字段的,(有其他标签符合的也可以)

<a>标签常见的写法之一

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

然后构造payload、闭合input标签,写入a标签

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

总结思路

过滤了on、script,含有大小转换为小写的函数,不能大小写绕过,选择其他标签且不带有script、on字段即可

第六关

尝试写入各种payload,就是之前关卡的payload,发现

替换on、href、script,相当于过滤了on、href、script、src、data字段

基本上把所有的函数都给过滤了,就是说绕过也是在函数字段后面吧应该

绝招,看答案,算了问ai吧,没办法在看答案,问了ai好像给了我好多答案,但是我都没有试出来,有点意思,难道ai也不能解决,可能我问的方式也有问题吧。ok看答案

有点崩溃了,居然是大小写绕过,最朴素的大小写绕过啊,废了

想起来了,前几关有大写转小写的函数,但是这关没有

构造payload

"><a HREF="javascript:alert(1)" >test</a> 

总结思路

虽然过滤了绝大部分xss弹窗需要的函数和标签,但是未检测大小写,所以可以用大小写进行绕过!!!!

思考问题:为什么大小写可以绕过这关?

根据我的思考,难道他是windows搭建的,对大小写不敏感?

得到的是否定,不对啊,他又不是用windows运行的,怎么和windows扯上关系了,那他的这段代码是前端运行的!!!

所以是和html和javascript这两个有关系,搜一下子,ok有一点理解,

例如:<script>alert(1)</script>,这段代码的其实分为两种,<script>标签其实html语言的一部分,就是html代码,但是alert(1)是javascript代码,就是js语言,其实就是script标签里面的语句,就是然个js语言来执行的,

但是不是所有的标签里面的语句都是用js引擎来解析的,例如:

<button οnclick="alert(1)">                               有onlick函数,能解析js

<script src="data:text/javascript,...">    有src,能解析js

所以回到正题,本身标签是html代码,所以可以用大小写绕过(html不区分大小写),但是里面的函数是js执行,可就不能大小写绕过了(js严格区分大小写,)

第7关

先尝试注入各种payload,发现payload的其中像,script,on*,data等关键字全部删除了

见图,以下是删除的script,但是未过滤尖括号和双引号,还有其他办法

如果不是删除,是替换了,就没有其他办法了,

如果是删除的话,就需要检查他有没有进行二次删除,就是说他删了我一个script字段后,我剩余的字段可以拼接成script,也是可以造成弹窗

如:<scscriptript>,如果是将里面的script删除了,如果没有检验二次检查的话,我剩余的就可以组成一个完整的弹窗语句,<script>,

所以构造payload:"><scscriptript>alert(1)</scscriptript>

总结思路:

只是对敏感标签进行删除,但是没有进行二次验证,所以可以通过双写来绕过

如果是对敏感字符进行替换,也不能用双写来绕过了

http://www.xdnf.cn/news/413821.html

相关文章:

  • 解决下拉框数据提交后回显名称不对
  • LearnOpenGL02:绘制三角形和矩形
  • 系统稳定性之技术方案
  • 处理均值的配对比较
  • 一、华为鸿蒙系统介绍
  • 计算机组成原理———CPU指令周期精讲
  • 高防云的主要优势表现在哪些方面?
  • 学习黑客5 分钟深入浅出理解Alternate Data Streams (ADS)
  • 国产大模型「五强争霸」:决战AGI,谁主沉浮?
  • Fiber
  • SQL数据库核心实用技巧总结
  • SaaS备份的必要性:厂商之外的数据保护策略
  • Ethereum Pectra 的升级
  • 在文档里如何引用在线SVG甘特图
  • 普通IT的股票交易成长史--20250512复盘
  • [计算机网络]网络层
  • 安装hadoop
  • MySQL 事务(一)
  • 01 安装CANoe
  • 运算放大器相关的电路
  • 【Python爬虫】01-Python爬虫概述
  • js相关内容
  • 实数完备性定理互证1
  • 在选择合适的实验室铁地板和铸铁试验平板,帮分析​
  • ApiPost工具详细介绍及使用教程
  • Java中String字符串
  • 【蓝桥杯嵌入式】【模块】二、LED相关配置及代码模板
  • 关于输入法重码率的计算
  • web 自动化之 Unittest 应用:测试报告装饰器断言
  • 基于大模型研究技术方案清单