htmlspecialchars函数绕过
Posted H3rmesk1t
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了htmlspecialchars函数绕过相关的知识,希望对你有一定的参考价值。
定义
把预定义的字符转换为 HTML 实体
语法
htmlspecialchars(string,flags,character-set,double_encode)
用法
预定义的字符
&:转换为&
":转换为"
':转换为成为 '
<:转换为<
>:转换为>
string:必需,规定要转换的字符串
flags :可选,规定如何处理引号、无效的编码以及使用哪种文档类型
character-set :可选,一个规定了要使用的字符集的字符串,如:UTF-8(默认)
double_encode :可选,布尔值,规定了是否编码已存在的 HTML 实体
flags参数可用的引号类型
ENT_COMPAT :默认仅编码双引号
ENT_QUOTES:编码双引号和单引号
ENT_NOQUOTES:不编码任何引号
注:xss-lab中有些关卡可以利用单引号绕过是因为flags参数默认只编码双引号
double_encode参数布尔值
TRUE:默认,将对每个实体进行转换
FALSE:不会对已存在的 HTML 实体进行编码
绕过方法
默认编码(仅编码双引号)
<?php
$name = $_GET["name"];
$name_new = htmlspecialchars($name);
?>
<input type='text' value='<?php echo $name_new?>'>
利用单引号能够绕过
以上是关于htmlspecialchars函数绕过的主要内容,如果未能解决你的问题,请参考以下文章