赞
踩
靶场地址alert(1)
输入在文本框里面,我们闭合前面的标签,中间的内容我们就可以随意写了
逃逸value的属性即可,这里使用点击事件触发xss
看代码,使用了正则表达式,去掉了所有的括号字符
/[()]/g
是一个正则表达式,表示匹配字符串中包含的括号字符"()"。在正则表达式中,方括号[]
表示字符集合,其中列出的字符表示需要匹配的字符。因此[()]
表示匹配任何一个括号字符,即左括号"("或右括号")"。而后面的g
标志表示全局匹配,即匹配整个字符串中的所有符合条件的部分,而不是只匹配第一个。
- function render (input) {
- const stripBracketsRe = /[()]/g
- input = input.replace(stripBracketsRe, '')
- return input
- }
尝试编码绕过,但是因为在JavaScript里面不会解码,因此编码绕过失败
我们使用a标签,里面使用编码却可以绕过,为啥?因为编码有顺序
在href里面,先是解析url编码,然后html实体编码,最后是JavaScript编码。所以在里面先被html实体编码解析过了,括号已经生成了
<a href="javascript:alert(1)">test</a>
既然html在JavaScript前面,那么具有url编码的iframe标签也可以进行
<iframe src="javascript:alert(1)">test</iframe>
和上一关payload一样,只是增加了个反引号过滤罢了
让我们逃逸注释符
- function render (input) {
- input = input.replace(/-->/g, '声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/184624推荐阅读
相关标签
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。