Less - 11:
1.观察界面和源代码可知,依旧是隐藏表单
2.突破点是
$str11=$_SERVER['HTTP_REFERER'];
(本题为HTTP头REFERER注入)
3.因此构造payload对t_ref进行修改
payload:
click here~" type="button" onclick="javascript:alert(1)"
4.
Less - 12:
1.直接分析源码,可以判断此题为user-agent注入
2. 启动bp拦截一下,
3.用payload替换,
Less - 13:
1.分析源代码,发现是cookie注入
2.依旧拦截抓包,修改
3.通关
Less - 14:
地址失效
Less - 15:
1.查看源代码,发现有弹窗脚本
补充:
①ng-include 指令用于包含外部的 HTML 文件。包含的内容将作为指定元素的子节点。
②ng-include 属性的值可以是一个表达式,返回一个文件名。默认情况下,包含的文件需要包含在同一个域名下。
2.思路:
①使其包含leve 1 文件并构造如下payload ,利用src异常报错 。
②onerror 事件在加载外部文件(文档或图像)发生错误时触发。
3.做法:搜索发现无隐藏输入框,找到一个img标签,用于加载页面图片
4.尝试利用img
标签的src
路径错误触发的onerror
事件,来制造弹窗,即:将src置空,新增onerror事件为alert(1)
构造payload:
'level1.php?name=test<img src=1 onerror=alert(1)>'
总结:无input标签,但是发现img标签,利用其空src的报错事件(onerror) 进行绕过
(法二:见http://0verflow.cn/?p=1764)
Less - 16:
1.查看源代码,依旧是统一小写+各种过滤替换......把 “script”、”/”、”空格” 转换为” ” 这个实体编码,那就不能双写绕过和大小写混合绕过了。
2.尝试使用回车符%0a进行(经过尝试是可以的)
3.发现<center>标签,作用为
4.script我们可以使用%a0隔开绕过替换,空格替换可以使用%0a代替,但是反斜杠却没法绕过,所以只能不使用反斜杠。
5.构造payload:
<a%0ahref="javascr%0aipt:alert(1)">
Less - 17:
1.进入页面发现有两个注入点
2.查看源代码,发现<embed>标签,由于embed支持html事件属性,那就可以给他添加一个属性,比如onclick
3.尝试构造payload
arg01= onclick&arg02=javascript:alert(1)
Less - 18:
思路和上一关完全一样,引用上一关payload
arg01= onclick&arg02=javascript:alert(1)
Less - 19-20:
flash xss,涉及到反编译(没怎么肝明白,还在看,,,)
可以参考