1.第一题没啥拦截和编码,直接显示,源代码如下:
ini_set("display_errors", 0);
$str = $_GET["name"];
echo "欢迎用户".$str."
";
payload:
2.第二题的源代码如下:
$str = $_GET["keyword"];
echo "没有找到和".htmlspecialchars($str)."相关的结果.
"."
可以看到进行html特殊字符的编码,经过测试以后发现,浏览器进行所谓的URL编码,然后发送到服务器端解码以后进行HTML实体编码,对',",<,>,&符号进行编码,注意单引号编码不是默认的,然后返回前端被浏览器解析,还原成xss payload弹窗,所以这是html编码只能防范存储型漏洞的意思?
先看下去
3.第三题源码如下:
$str = $_GET["keyword"];
$str2=str_replace(">","",$str);
$str3=str_replace("<","",$str2);
echo "没有找到和".htmlspecialchars($str)."相关的结果.
".'
显然是做了代替,去掉了所有的大于小于号,那就只能用事件触发了.
4.第四道同三
5.源代码如下:
$str = strtolower($_GET["keyword"]);
$str2=str_replace("