目录
level19-level20用闭合的方法已经做不了了,要用flashxss就不再研究了
xss-labs应该是很基础的了非常适合小白上手

我们点击开始
level1

通过查看url和页面,很轻易就能知道test是个注入点
直接
<script>alert(1)</script>

很轻松就过关了
level2
来到第二关,我们先尝试一下
并没有成功我们f12查看页面的来源

17行中<input name=keyword value="<script>alert(1)</script>">
我们发现我们输入的代码是直接到了value当中并没有解析那我们尝试把它闭合
像sql注入一样用双引号和尖括号把它闭合 "><script>alert(1)</script>

成功过关
level3
尝试刚刚输入的,不成功直接看代码

<input name=keyword value='<script>alert(1)</script>'>
我们可以发现,我们输入的尖括号被过滤掉了
需要一种不需要尖括号也可以执行 alert(1)的语句
我们可以用onclick或者onfocus语句,具体的使用方法可以百度
那么我们就需要先闭合value语句再onclick
<input name=keyword value=' <script>alert(1)</script>'>
value是用单引号包裹的,就用单引号闭合,再输入οnclick=alert(1)
'onclick=alert(1)
输入后点击输入框无反应看源代码
发现后面还有一个单引号,直接用//注释掉
'onclick=alert(1)//
输入后点击输入框(onclick的原因)过关
level4
先输入<script>alert(1)</script>测试一下
变成scriptalert(1)/script,过滤掉了<>
直接
'onclick=alert(1)//

不难发现是双引号注入,直接
"onclick=alert(1)//
过关
level5
继续用老句子测试

发现屏蔽了script但把尖括号放出来了,用onclick发现也被屏蔽了,这时候可以先尝试一下大小写绕过

都不行那我们就需要用<a href='javascript:alert(1)'>
用a标签的href属性执行javascript:伪协议
记得前面要闭合value
"><a href='javascript:alert(1)'>
之后点击图片就能过关
level6
这关我们直接
"><a href='javascript:alert(1)'>

发现href被屏蔽了,我们尝试大小写绕过
"><a HREf='javascript:alert(1)'>
点击直接成功了,所以呀告诉我们遇到被屏蔽之后就先尝试大小写绕过。
level7
第七关我们再把上一题试一试看代码变化
"><a HREf='javascript:alert(1)'>

发现helf 以及script都被屏蔽了,但是这里是消失了,我们可以尝试重写绕过
直接用<script>alert(1)</script>尝试
重写script,记得前面闭合value以及后面注释掉多余的
"><scrscriptipt>alert(1)</scscriptript>//
直接过关
level8
先进到这一关,发现和前几关有些不一样,那我们老实点<script>alert(1)</script>,看看屏蔽了啥

script和尖括号都被屏蔽了切换大小写也都没用
这道题会把我们输入的连接传给下面

看到前面 a helf就能想到a href=javascript:alert(1)
那我们直接传入javascript:alert(1)
发现会被屏蔽那么我们把它实体化编码
javascript:alert(1)
点击友情链接接,直接成功
level9
测试之后发现它会判断我们输入的是否为合法的链接

我尝试把百度的网站贴进去发现竟然也失败了,后来发现他只能输入http://而不能用https://
最后输入http://baidu.com发现是成功了,所以这关应该是会检测输入的内容中是否有http://
那么我们将javascript:alert(1)的实体编码加到http://前面
javascript:alert(1)//http://
点击友情链接 成功!
level10
首先进入这一题,发现没有输入框,那么我们再次用hackbar
先简单测试一下

发现尖括号被过滤了,使用οnclick=alert(1)

但并没有任何的反应,我们继续看代码,发现
<input name="t_link" value="" type="hidden">
<input name="t_history" value="" type="hidden">
<input name="t_sort" value="" type="hidden">
可以看到它的type是hidden是被隐藏了
那么我们直接在hackbar中把keyword换为t_link,t_history,t_sort依次尝试
当输入的内容为
t_sort=" onclick=alert(1)//

因为它的type为hidden所以没办法触发事件
我们将它的type改为text,再将后面的注释掉

" onclick=alert(1) type="text"//
点击输入框,过关
level11
进入到这关,和上一关类似 ,但是多了一个t_ref,而且还保留着上一关的地址


在t_sort先测试一下看屏蔽了什么发现屏蔽了尖括号和双引号
但是将t_sort改为t_ref却没有反应,于是我返回10关重新过关看到了t_ref
那么突破口就应该在t_ref当中,我们抓个包看看

我们发现Referer的内容就是t_ref显示的内容
那么我们在referer中注入
"onclick=alert(1) type="text"//

成功过关
level12
进入题目

发现这道题和11题相似,多了一条t_ua,内容是当前浏览器的属性
我们继续burp抓包

我们直接修改User-Agent
"onclick=alert(1) type="text"//

level13
这关一看多出的t_cook就知道是在cookie当中注入了

抓包注入
注意不能删掉cookie当中的user=
user="onclick=alert(1) type="text"//

level14
刚进14关我以为怎么了呢连图都消失了

看了半天源码也不知道是怎么了,一查发现是关卡坏了,那没事了
下一关
level15
进来以后先抓个包吧

应该是src注入
但是发送的数据会传入到ng-include
那我们就先了解一下什么是ng-include
ng-include 指令用于包含外部的 HTML 文件。
包含的内容将作为指定元素的子节点。
ng-include 属性的值可以是一个表达式,返回一个文件名。
默认情况下,包含的文件需要包含在同一个域名下。
意思是它会返回到一个当前文件的html当中
那么我们输入level1.php来到第一关
咦不动呢
查了资料题坏了,下一关
level16
来到第16关

首先测试一下

script被屏蔽了,大小写,重写都无法绕过
那么我们换个标签注入

空格被 替代了
用回车的url编码来替代
<img%0Asrc=1%0Aonerror=alert(1)>
成功通关
level17
来到 17关

看看源码

试了几遍发现<embed src=xsf01.swf?a= 这里有注入
这里是embed导入swf文件
这里添加一个onmouseover事件鼠标指针移动到图片后执行Javascript代码:

前面要加一个空格才行
level18
和17题一样,还没来得及截图就结束了
本文详细介绍了XSS跨站脚本攻击的实战案例,从level1到level16,展示了如何利用和绕过各种过滤机制,包括注入点识别、编码绕过、事件触发等技巧。通过实例解析,帮助初学者理解XSS攻击的本质和防御策略。
1715

被折叠的 条评论
为什么被折叠?



