htmlspecialchars()函数把预定义的字符转换为html实体。
预定义的字符是:
&(和号)成为 &
“”(双引号)成为 "
‘’(单引号)成为 '
<(小于)成为 <
>(大于)成为 >
可用的引号类型:
ENT_COMPAT-默认。仅编码双引号。
ENT _QUOTES-编码双引号和单引号。
ENT_NOQUOTES-不编码任何引号。
练习部分
打开pikachu漏洞练习第二章节的xss之盲打部分。依旧是随便输入数据测试,发现输入数据后网页显示输入数据已经被记录打印在网页上。
尝试输入JavaScript代码所需的各符号,查看网页源代码查看是否成功在源代码界面输出
在源代码界面可见我们输入的符号被转换为了我们前文提到的代码。所有输入的符号都被转化,只有单引号‘’没有被转化。
以此我们构建JavaScript代码
q' onclick='alert(1235)'
输入进入input选框中,成功绕过htmlspecialchars,利用了xss漏洞构造了脚本