0%

xss-labs第1-9关练习测试

在dvwa的pikachu学会xss的一些基本原理和方法后,来xss-labs测试一下

ps:这里好像都是反射型的,至少前九关是这样,后面的没有做

leve1(无过滤)

第一关没难度

1
payload:?name=<script>alert(1)</script>

leve2(闭合script标签绕过)

测试<script>alert(1)</script>失败,看下前端源码:

图片

我们需要主动闭合,使<script>标签逃逸出来

1
payload:?keyword='"><script>alert(1)</script>
图片

或者下面的payload:"><script>alert(1)</script>

leve3(单引号onclick事件绕过)

尝试<script>alert(1)</script>失败,继续看源码:

图片

左尖括号和右尖括号都被转义了,所以我们用不了标签,接下来只能尝试事件弹窗,先看下' " < >有哪些被转义

图片

这里只有单引号没有被转义,那就用onclick来弹窗

1
payload:#' onclick='alert(document.cookie)

这里的井号可有可无的,onclick后面的单引号与后面原先的单引号闭合,然后我们点击输入框,即可成功

图片

leve4(双引号onclick事件绕过)

这里同样方法测试,发现单双引号都没过滤,还发现value的值是被双引号包含(与上一题的不同点),直接把payload的单引号换成双引号即可

1
payload:#" onclick="alert(document.cookie)
图片

然后点击输入框的#即可

leve5(a标签js伪协议绕过)

发现script标签里的r和i之间被加上了下划线,那么script肯定用不了了,' " < >都没被过滤,然后发现onclick事件也用不了

图片图片

那这里只能用a标签了

1
payload:#"><a href=javascript:alert(1)>
图片

level6(大小写绕过)

测试一下href和ri和on,确认下a标签和script标签和onclick事件能不能用

图片

只能尝试script大小写了(双写肯定不行的)

1
payload:"><scRipt>alert(1)</scRipt>
图片

除了script大小写,还可以href大小写,和on大小写都能绕

level7(双写绕过)

测试<script>alert(1)</script>,发现script没了,只剩下尖括号了,那这里应该是过滤了script关键字,那就可以用双写绕过了

图片
1
paylaod:"><scscriptript>alert(1)</scscriptript>
图片

这里用其他的双写也能绕过,如a标签的href和事件的onclick中的on双写都可以

level8(href之unicode编码绕过)

测试<script>alert(1)</script>

图片

可以看到输入的内容赋值给href,而href可以执行js伪协议即href=javascript:alert(1),但是这里被过滤了,大小写也绕不了,但是href在执行过程中回对unicode编码,如果我们传输的是javascript:alert(1)的unicode编码,那么执行过程就会解码,就成功绕过了,在线unicode编码

图片
1
paylaod:&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;
图片

然后点击友情链接就能绕过

level9(href之unicode编码绕过)

查看源码发现我(href之unicode编码绕过)们的输入中需要包含http://,我们可以这样构造:

图片
1
&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#41;//http://

我们最后使用一个双斜杠给它隔断

图片

然后点击友情链接就能绕过

后面的有点难,有时间再搞吧

参考文章

https://blog.csdn.net/l2872253606/article/details/125638898

# #