好气啊放假偷懒了好几天,来到学校看到大佬发的一份xss小游戏,就来练练手,因为平时很少玩XSS,所以过程走了很多弯路,但是学习到了很多知识也对XSS的挖掘有了一定的理解。
上题!
第一关
第一关很简单没有任何过滤的xss 直接在URL输入框插入Payload就好
Payload:<script>alert("xss")</script>
第二关
直接上测试的源码
很明显 两个输出点上面那个尖括号被过滤了 下面这个并没有被过滤输出在属性里面所以闭合就过了
Payload: ”><script>alert("xss")</script>
第三关:
直接上源码
上面和下面的尖括号都被过滤了 带有<>的payload都是不能用的了 这样我们就可以换个思路 使用ON事件
Payload:' onmouseover=alert(document.domain) align='left
第四关:
其实第四关和第三关一样 只不过闭合的是双引号属性里用什么引号闭合我们就使用什么引号闭合
Payload:"onmouseover=alert(document.domain) align="left
第5关:
这关很蛋疼他会自动的在on和script中加上一个下划线 这样导致我们的paylaod无法执行
在这里懵圈了好久才知道使用<a>标签
Payload: "> <a href="javascript:alert('xss')">111</a>
第六关:
这一关过滤的方式跟第5关的一样 在关键字后面加下划线 但是他可以通过大小写绕过
Payload:"><ScRiPt>alert(document.domain)</ScRipt>
第七关:
这关就比较轻松的绕过了 他把我们的关键字过滤掉 但是我们可以通过拼接来进行绕过
Payload:"><scrscriptipt>alert(document.domain)</scrscriptipt>
第八关:
在这里有两个输出点上面那个输出点丧心病狂的将<>”都实体编码了 我就直接放弃去看第二个输出点了 下面这个输出点输出在<a>标签里面 一看就是伪协议来弹框框了 直接上payload 结果
又过滤了script这个关键字 翻看了一些xss与编码的资料 最后还是使用html编码绕了过去
Payload:javascript:%61lert(1)
第九关 :
又是友情链接 但是他多了一个检测功能不是https://的都不去
最终payload:javascript:%61lert(1)//https://www
由于时间很紧 后面的题也留着了。。就到这里了