xss-labs闯关

本文详细介绍了XSS跨站脚本攻击的实战案例,从level1到level16,展示了如何利用和绕过各种过滤机制,包括注入点识别、编码绕过、事件触发等技巧。通过实例解析,帮助初学者理解XSS攻击的本质和防御策略。

目录

level1

level2

level3

level4

level5

level6

level7

level8

level9

level10

level11

level12

level13

level14

level15

level16

level17

level18

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='&lt;script&gt;alert(1)&lt;/script&gt;'>   

我们可以发现,我们输入的尖括号被过滤掉了

需要一种不需要尖括号也可以执行 alert(1)的语句

我们可以用onclick或者onfocus语句,具体的使用方法可以百度

那么我们就需要先闭合value语句再onclick

<input name=keyword  value=' &lt;script&gt;alert(1)&lt;/script&gt;'>

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)

发现会被屏蔽那么我们把它实体化编码

&#x6A;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3A;&#x61;&#x6C;&#x65;&#x72;&#x74;&#x28;&#x31;&#x29;

 点击友情链接接,直接成功

level9

测试之后发现它会判断我们输入的是否为合法的链接

我尝试把百度的网站贴进去发现竟然也失败了,后来发现他只能输入http://而不能用https://

最后输入http://baidu.com发现是成功了,所以这关应该是会检测输入的内容中是否有http://

那么我们将javascript:alert(1)的实体编码加到http://前面

&#x6a;&#x61;&#x76;&#x61;&#x73;&#x63;&#x72;&#x69;&#x70;&#x74;&#x3a;&#x61;&#x6c;&#x65;&#x72;&#x74;&#x28;&#x31;&#x29;//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被屏蔽了,大小写,重写都无法绕过

那么我们换个标签注入

 空格被&nbsp替代了

用回车的url编码来替代

<img%0Asrc=1%0Aonerror=alert(1)>

成功通关

level17

来到 17关

看看源码

 试了几遍发现<embed src=xsf01.swf?a= 这里有注入

这里是embed导入swf文件

这里添加一个onmouseover事件鼠标指针移动到图片后执行Javascript代码:

前面要加一个空格才行

level18

和17题一样,还没来得及截图就结束了

level19-level20用闭合的方法已经做不了了,要用flashxss就不再研究了

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值