1.xss之htmlspecialchars
htmlspecialchars()函数的功能如下:
htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
预定义的字符是:
(1)& (和号)成为 &
(2)" (双引号)成为 "
(3)' (单引号)成为 '
(4)< (小于)成为 <
(5)> (大于)成为 >
该函数默认不过滤单引号,只有设置才可以过滤单引号;
插入payload:'οnclick='alert(123)'
成功弹窗!
或者插入payload:javascript:alert(1)
成功弹窗*2!
源码:
3.xss之href输出
还是先插入payload:<script>alert(1)<script>试试,没有弹框
鼠标右键–查看网页源代码,发现左右尖括号和单引号都被html编码了,这样的话,闭合标签或者闭合属性都行不通了。
看提示
从网上一查:
<a>标签的 href 属性用于指定超链接目标的 URL。
href 属性的值可以是任何有效文档的相对或绝对 URL,包括片段标识符和 JavaScript 代码段。如果用户选择了<a>标签中的内容,那么浏览器会尝试检索并显示 href 属性指定的 URL 所表示的文档,或者执行 JavaScript 表达式、方法和函数的列表。
从上述描述可见,这边可以利用JavaScript协议。
插入payload:javascript:alert(document.cookie)
成功弹窗!
3.xss之js输出
还是先插入payload:<script>alert(1)<script>试试,果不其然没有弹框
那就继续右键查看源代码
发现刚刚输入的东西跑到<script>
标签内了,并且没有被编码
接下来就很简单了,只要无中生有出一个js语句就好了,首先要用’;闭合掉当前的语句,然后插入新语句,然后再用//注释掉老语句遗留下来的’;
输入payload:';alert(1);//
成功弹窗!