test1
第一题直接在test插入XSS代码即可
test2
第二关对内容进行”“包裹
这里可以采用”>来绕过
test3
代码审计发现这里用了htmlspecialchars函数,这个函数对<>和’ “等进行了转义,这里可以用事件来绕过
test4
这里用了str_replace,还过滤了‘,本来想尝试双写,还是用上面的方法把,换成”
test5
如图,这里过滤了
test6
这里看到过滤了很多标签,可以用大小写绕过
test7
这里把script直接过滤了,并且strtolower把字符变为小写过滤大小写,这里因为是置换为空可以用双写绕过">alert(1)
test8
这里不能用重写,而且htmlspecialchars将一些特殊字符转化为HTML实体,进行html编码绕过
这里要先添加友情链接,再点击友情链接,payload javascript:alert(1)
test9
这里多了进行判断字符里是否有http://,构造javascript:alert(‘http://’),在alert插入http://
test10
这题的关键在于传递的参数通过t_sortt_sort传递,并且禁用了<>,通过事件来触发,并且指定类型 http://127.0.0.1/xsschallenge/level10.php?t_sort=1" οnmοuseοver=“javascript:alert(1)” type=“string”
test11
这题给了两条路,试了一下上一题的解题思路,发现不行,”会被转义
使用另一个方法,在Referer处插入XSS
test12
从代码来看很容易发现是从UA头入手,语句和前面一样
test13
这里换成了Cookie注入,user=1" οnmοuseοver=“javascript:alert(1)” type=“text”
test14
这一关原来的地址打不开了,修改了一下源码,直接做15关
test15
GPT一下,发现
'http://127.0.0.1/level1.php?name=<img src=1 οnerrοr=alert(1)>'这是别人的payload,不知道为什么做不出来,用魔法了
test16
这里关键是过滤了空格,/和%0a都可以代替空格,这里过滤了/,用%0a
后面的复制大佬的payload
17
查看17关的PHP源码,发现有个src=xsf01.swf,swf文件是以前的旧浏览器的flash文件,但是现在浏览器基本都不支持了,所以,把源码修改改为src=index.png,并不影响。
有个标签,这个标签定义了一个容器,用来嵌入外部的应用程序等。现在不建议使用,一般使用等标签代替。构造如下payload
http://127.0.0.1/xss-labs-master/level17.php?arg01=a&arg02=b οnmοuseοver=‘alert(123);’
18
同上
http://127.0.0.1/xss-labs-master/level18.php?arg01=a&arg02=b οnmοuseοver=‘alert(123);’
19
按照同上修改PHP文件,然后payload一下,发现并不能成功,因为在这一关的src=后面有个双引号,也就是说会把index.png?和你传入的值放在一起进行处理。又因为传入的值经过htmlspecialchars实体化处理,
所以无法闭合双引号。 先把index.png?恢复成原来的,然后参考大佬的文章:https://blog.csdn.net/u014029795/article/details/103213877
20
参考文章:
https://blog.csdn.net/u014029795/article/details/103217680