首先整体浏览网站
分别是xss注入点,注入后的HTML代码以及网页源码
构造常规payload:
<script>alert(1)</script>
成功通关
看到注入点是在<textarea></textarea>标签中, 所以用上一题的方法是不会被解析的, 故需要去构造标签, 闭合<textarea></textarea>, 就可以注入了:
</textarea><script>alert(1)</script><textarea>
成功通关
或者, 利用error事件也可以:
这个img,是用来给页面加入图片的,图片的地址就是由src来设置的,然后后面那个onerror是一个事件,就是一旦出错,就会执行里面的JavaScript代码。所以我们就把图片的地址随便写一个,然后程序出错,最后执行JavaScript代码。
</textarea><img src="x" onerror="alert(1)"><textarea>
成功通关
输入常规payload:
<script>alert(1)</script>
我们发现这题的注入点是把值转化为字符串, 然后显示在输入框内, 这样前两题的标签闭合注入也就失效了
可以借鉴sql注入的方法, 将前面的双引号闭合, 然后注入新的标签,上一关是闭合整个标签,这次就闭合一半,使用">把前面的标签给闭合了,然后再写自己的标签:
"><img src="x" onerror="alert(1)">
成功通关
审查源码我们发现,括号, 方括号都被过滤了:
可以用 `` 来代替进行绕过:
<script>alert
1</script>
成功通关
审查源码我们发现,这题把括号、正括号和引号都过滤了:
可以考虑用html编码来绕过, 将(1)进行html编码:
构造payload:
<img src="" onerror=alert(1)>
成功通关
此题的注入点处于注释符之间, 而注释符的后半部被替换为一个