漏洞介绍:XSS漏洞
参考文章:XSS挑战之旅
游戏规则:触发alert()弹窗,进入下一关
进入第一关
随便输入一下,观测输出,看源代码
输入语句进行测试,触发弹窗,进入第二关
源码
欢迎来到level1 欢迎来到level1
欢迎用户".$str.""; //直接对传入的参数进行输出,没有过滤?>![]()
payload的长度:".strlen($str)."";?>
分析浏览器加载的结果
1 ------------------------------------------------$str=欢迎用户".$str."
2 ------------------------------------------------欢迎用户
3 ------------------------------------------------欢迎用户
输入语句进行测试
查看网页源代码
补充:htmlspecialchars($str)
分析浏览器加载的结果
alert(1)"> //这里的是字符串
""> //闭合引号,这里的可以被浏览器加载
------------------------------------------------
"
">
进入下一关
源代码
没有找到和".htmlspecialchars($str)."相关的结果.".' ';
?>
输入语句进行测试
测试,看效果修改
payload
下一关
源码
没有找到和".htmlspecialchars($str)."相关的结果."." ";
?>
输入语句进行测试
继续测试11111' onclick='alert(1)
测试11111" onclick="alert(1)
下一关
源码
","",$str); //替换了< >$str3=str_replace("<","",$str2);echo "没有找到和".htmlspecialchars($str)."相关的结果.
".' ';
?>
输入语句进行测试
测试
测试
123">
浏览器加载效果
源码
没有找到和".htmlspecialchars($str)."相关的结果.".' ';
?>
大写绕过
源码
转义了echo "没有找到和".htmlspecialchars($str)."相关的结果.
".' ';
?>
测试
测试绕过
双写绕过
页面
测试
过滤了<
和>
测试
payload
利用HTML语言的解析顺序,使得type="text"
源码
","",$str11); //过滤< >$str33=str_replace("<","",$str22);echo "没有找到和".htmlspecialchars($str)."相关的结果.
".' ';
?>