xsslabs靶场1-10

level1

看了看level1的源码





欢迎来到level1


欢迎来到level1

欢迎用户".$str.""; ?>
payload的长度:".strlen($str).""; ?>

通过$_GET[“name”],获取name的值,没有过滤通过echo直接进行了输出,get请求的name变量放入xss脚本,完整的返回在html中,浏览器响应xss脚本

构造payload:name=

在xss中拥有同样弹窗效果的函数不止alert,还有confirm以及prompt

从代码角度去看,可以发现就是直接用GET方式获取参数然后输出到浏览器上面,这是典型的没做过滤。怎么防御?可以加一个转义函数htmlspecialchars把一些html格式的东西编码就可以有效防止了。

xsslabs靶场1-10_第1张图片

level2

像上一关一样输入,并没有弹窗,回显如下:

xsslabs靶场1-10_第2张图片

再看看源码

xsslabs靶场1-10_第3张图片

划红线部分就是提交的参数了,我们发现这里是可以闭合前面的引号和**>**,再构造xss弹窗

payload:"/>

xsslabs靶场1-10_第4张图片

level3

输入上一关的试试,当然没用

xsslabs靶场1-10_第5张图片

看看源码

xsslabs靶场1-10_第6张图片

发现提交的xss脚本中的**<>**都没了,应该是被htmlspecialchars函数过滤了

所以这里可以用单引号闭合value,却没办法闭合input标签,但是可以注释掉后面标签然后用事件弹窗,这里介绍几个常用的事件函数,比如onchange, onclick, oninput等等

payload:1' onclick=alert("xss")//

xsslabs靶场1-10_第7张图片

level4

输入"/>测试一下,

xsslabs靶场1-10_第8张图片

**<>**依然被转义,再试试点击事件弹窗

payload:1" onclick=alert("xss")//

xsslabs靶场1-10_第9张图片

level5

输入"/>,发现测试, //

xsslabs靶场1-10_第14张图片

level7

按照前面的套路试了一遍,发现script、on、href都被过滤,大小写都被过滤

使用双写单词来绕过

payload1:" oonnclick=alert(1)//

payload:">

xsslabs靶场1-10_第15张图片

xsslabs靶场1-10_第16张图片

level8

随便输了一个试试,查看源码

uYdiSx.png

发现原本就有一个href标签,所以直接添加javascript:alert(1)即可,可是会发现script被过滤了,转换大小写也不行,

xsslabs靶场1-10_第17张图片

可以发现还有一处调用的字符串里面没有使用这样的函数去进行防护,可以利用这一点下功夫,尝试编码绕过,进行html编码之后可以成功饶过,

javascript:alert(1)

(其实这里编码的话只编码script其中一个字符就可以)

xsslabs靶场1-10_第18张图片

level9

输入javascript:alert(1)测试一下

uY0PsK.png

发现这次的输入没有在href标签那里,所以,再试试">

uY06Y9.png

尖括号和引号都被过滤,看来害的编码

使用上一关的poc试试,也不行,,,只能看看源码

xsslabs靶场1-10_第19张图片

发现这里对url进行了限制,必须包含http://

尝试构造javascript:alert(1)http://,居然不对、、、

uYc5v9.png

确实不对,那该怎么办呢,两

个解决办法:注释或者把http://放到aler()里面

javascript:alert(1)//http://

javascript:alert("http://")这里吧引号编码

xsslabs靶场1-10_第20张图片

level10

明面上没有看到输入框,但是url栏里可以输入

xsslabs靶场1-10_第21张图片

xsslabs靶场1-10_第22张图片

发现尖括号被过滤,但是这里有三个隐藏的参数,不明白,看看源码

xsslabs靶场1-10_第23张图片

keyword被htmlspecialchars过滤,但是还有一个参数t_sort没有防护,只是过滤了尖括号,然后放到了一个input标签中隐藏起来

可以闭合双引号,使用onclick事件,然后把隐藏的标签用text方式回显出来即可,最后的payload

t_sort=" onclick=alert(1) type="text"

xsslabs靶场1-10_第24张图片

level11

你可能感兴趣的:(ctf)