XSS-labs Less 11-16
Less 11 referer信息
和Less 10一样,先去掉hidden提交值找绕过点,发现t_sort的value可以拼接
但是被HTML实体进行了编码
根据wp的提示,t_ref的值是referer的信息,hackbar修改下referer
再去看html部分,可以看到t_ref的value值变化,存在绕过点
referer:" onclick=alert() "
Less 12 UA
这一关同上一关一样,先查看get可以提交的参数(去掉type里的hidden,最后一个type改成submit,随便填提交)
根据提示直接改UA
Less 13 Cookie
这关和前几关一样,属于cookie绕过(说实在一般很少网站这么干,敢把cookie值弄到网站显示里去)
需要注意的是cookie值前需要有user=,php源码:
<?php
setcookie("user", "call me maybe?", time()+3600);
ini_set("display_errors", 0);
$str = $_GET["keyword"];
$str00 = $_GET["t_sort"];
$str11=$_COOKIE["user"]; // 取出cookie参数user的值
$str22=str_replace(">","",$str11);
$str33=str_replace("<","",$str22);
echo "<h2 align=center>没有找到和".htmlspecialchars($str)."相关的结果.</h2>".'<center>
<form id=search>
<input name="t_link" value="'.'" type="hidden">
<input name="t_history" value="'.'" type="hidden">
<input name="t_sort" value="'.htmlspecialchars($str00).'" type="hidden">
<input name="t_cook" value="'.$str33.'" type="hidden">
</form>
</center>';
?>
Less 14 exif xss
无法做
Less 15 ng-include 属性
ng-include:用于包含外部的html文件
可以考虑包含以前的关卡文件(php写成的html文件也可以)
此时就基本转换为做前面几个关卡了
?src='level1.php?name=<input onclick=alert()>'
不知道为啥网上全是下面这个,onerror是指媒体数据加载错误时执行js的alert
?name=<img src=1 onerror=alert(1)>'
试了下面这个目前还没搞懂为什么过不去,按理来说没有HTML编码哇
<script>alert()</script>
Less 16 空格实体转义
直接查看script+alert,script和/斜杠被替换为空格的HTML编码
首先大小写,不中;接着双写,中间被插入转义的空格
尝试<input onclick=alert()>,也不行:等于中间的空格被HTML实体转义了
初步确定script、空格和左斜杠被替换为 联想到sql注入时使用换行符(%0a、%0d)
注入:?keyword=<input%0aonclick=alert()>,点击输入框即可
Less 17-20都和flash相关,然而却不在浏览器中使用,研究价值不大,搁置不做