level 1
查看第一关的源码,发现get方法直接输入的内容,可以直接构造payload
payload:
level 2
第二关和第一关有点不一样的地方在于传入的字符串多了一个单引号,应该先闭合单引号。
payload:">
level 3
观察源码,多了htmlspecialchars()函数,这个函数会将<>等一些字符进行实体化,但是单引号不会。这里利用onmouseover事件。
payload:' onmouseover='alert(/xss/) '
level 4
观察第四关源码,多了一个str_replace()函数,简单介绍一下,str_replace("123","789","123456"),将参数三中内容为参数一的内容换为参数二,这里是将123456中的123换为789。本题是将<>替换为空。这里利用oninput事件和onchange事件。
payload:" onchange=alert`xss` " " oninput=alert`xss` // "
level 5
观察源码,先是strtolower()将所有字母转换成小写。然后str_replace()将