目录
第一关:


我们修改name后面的值,发现直接传到html,说明没做过滤,直接写脚本

第二关:

当我们再在地址栏输入脚本时,没反应

发现后端将代码转化为文本


打开控制台,直接闭合双引号,使用a" οnclick="alert(1),再点一下即可过关
也可以使用闭合尖括号

第三关:
再使用闭合双引号发现没反应了

查看控制台,发现双引号已经逃逸出来,但是格式不太对

打开后端代码发现:肯定是这个函数的问题,
htmlspecialchars,这个函数会让特殊字符转换为HTML文本,就将这里的双引号转化为文本了

但是可以看出,函数使用单引号包围,我们再用单引号发现就可以了

第四关:

发现后端代码就只是过滤了闭合尖括号

但为了不和用户交互,我们使用两个事件,autofocus 和 onfocus
a" autofocus οnfοcus="alert(1)"

直接过关
第五关:

发现直接过滤 on 和 script,但是没有过滤<>
strtolower:会忽略大小写,所以大小写混淆也不行
我们直接使用<>闭合:aaa"><a href="javascript:alert(1)">aaa</a>

再点击链接直接过关

第六关:

发现过滤了很多,但是没有过滤大小写加<>闭合
aa"> <Script>alert(1)</Script>

直接通关
第七关:

查看后端代码,发现没有过滤双写,直接双写on即可通关

第八关:

发现是一个链接,直接写没用,所以用HTML编码
javascript:alert(3)

第九关:
再使用第八关的编码发现被它识别了

查看后端便知道,有一个检测链接头部

所以我们直接加上http://如果加在尾部需要在前面加//
javascript:alert(3)//http://

第十关:

发现没有任何地方下手,查看html代码

发现有三个输入标签,但是没有显示,在地址栏测试发现只有t_sort才能正常显示

那直接在地址栏输入或者文本框输入都行
keyword=aaa&t_sort=a"οnclick=alert(1)%20type=text

第十一关:

发现后端代码有个http-referer

那直接用火狐的扩展HackBar
a"οnclick=alert(1) type="text

第十二关:
和第十一关一样,只是换成了user-agent


第十三关:
还是一样换成了cookies

user=a" οnclick=alert(1) type="text

xss.pwnfunction.com练习题
第一关:

直接传参:
?somebody=<img%20src=1%20οnerrοr=alert(1337)>
