XSSLAB破关详解

Level-1

 

 查看网页源代码发现本关采取get方式传提参数,为反射型XSS漏洞。且get到的参数在h2标签处未作处理。

 

 尝试将<script>alert(0)</script>当作参数传递。提示闯关成功。

 

分析后端源代码可看出,开发者未对传进来的值做任何处理后直接显示在屏幕上

 

level-2

第二关从关卡可以看出,本关和第一关类似。也是使用get传参的反射型漏洞。

 

 

 

 

 尝试传递<script>alert(0)</script>并查看源码,发现参数被双引号包围。

 

 可考虑将前引号闭合,后引号闭合,重铸js代码实现绕过。payload:test"><script>alert(0)</script>//  第一个双引号与源码实现闭合,第一个右尖括号闭合input标签,双斜杠将后面的注释。

 

 

查看服务器后端源代码,可看出只是对传入的参数进行双引号闭合,可考虑添加双引号实现闭合后,重铸payload

 

 Level-3

 

尝试传入<script>alert(0)</script>并查看源码后发现,对传入的代码进行了html编码。

 

 查看后端源码:发现使用htmlspecialchars对输入的参数进行了html编码。无法使用

 

 

绕过思路:采用事件,需要闭合标签的属性

1:'onfocus=javascript:alert('xss') //   (发送后需要点击下输入框)

通过burpsuite抓包结果。

 

 2:'onclick='alert(0)(发送后需要点击下输入框)

 

3:'onmouseover='alert(0)

 

 Level-4:

 

 查看源码,发现和第三关类似使用了Html编码。

 

 查看服务器源代码,发现使用了替换<>函数和html编码,并且用了双引号闭合。

 

 绕过方法和第三关类似,不过闭合需要用双引号。例如http://192.168.8.222/xsslabs/level4.php?keyword="onmouseover="alert(0)。

Level5

传入<script>alert(0)</script>发现script改成sc_ript

 

传入'onmouseover=alert(0)发现也被替换。可能后台对输入的数据进行了过滤和处理。

 

 查看后端源码发现,后台对script和on做了处理。

 

 绕过思路:重新构造标签"><a href="javascript:alert(0)">click me!</a>点击click me过关。

 

 

 level6

和第五关类似,未考虑大小写

 

 

 

 Level7和前两关类似,只过滤一次,可考虑重复关键词

 

 

 Level8:

本关卡中存在一个连接,表示使用了<a href=>标签

 

查看网页源码发现: 传入的值到了两个地方。

 

 

尝试用javascrpt:alert(0)发现script被修改,猜测后台做了过滤

 

 尝试用事件登录on 也被修改了

 

 查看源码发现大小绕过行不通,且无过滤关键字。

 

 绕过思路:可将payload编码实现绕过。

 

 

 

 Level 9和第八关类似

 

 使用编码&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#48;&#41;后发现无效链接,

 

 查看源代码发现使用了strpos函数过滤,输入的payload中必须要后http://字符

 

 因此可构造payload:&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#48;&#41;//http://www.baidu.com  其中http:前的//必要,使后面的地址不生效。

 

 Level10

 

 第10关无输入关 直接网页源代码搞起

 

 发现源代码中三个变量,依次尝试payload后发现均无显示。查询后端源代码

 

 只有t_sort参数具备可变条件,但是类型为隐藏不见的,需要更改类型,且过滤尖括号,无法闭合。考虑事件

t_sort=" type="text" onmouseover="javascript:alert(0)

 

 Level11(和第十关类似)

 

 

直接网页源代码搞起,发现有四个参数,而且都隐藏了,尝试用十关方法。无用,

 

 

 

 查看源代码:发现t_ref为网页来源,绕过思路使用bp修改referer即可实现绕过。

 

 

 

 

 

 Level12和前两关类似

 

 

网页源代码:发现请求头显示出来了 尝试修改请求头

 

 

 

 

 

 Level 13 考cookie

 

 Level14 题有问题(跳过))

posted on 2022-02-24 11:58  乒·乓  阅读(309)  评论(0编辑  收藏  举报