当前位置:   article > 正文

xss.haozi.me靶场练习

xss.haozi.me靶场练习

靶场地址alert(1)

1、第一关

输入在文本框里面,我们闭合前面的标签,中间的内容我们就可以随意写了

2、第二关

逃逸value的属性即可,这里使用点击事件触发xss

3、第三关

看代码,使用了正则表达式,去掉了所有的括号字符

/[()]/g是一个正则表达式,表示匹配字符串中包含的括号字符"()"。在正则表达式中,方括号[]表示字符集合,其中列出的字符表示需要匹配的字符。因此[()]表示匹配任何一个括号字符,即左括号"("或右括号")"。而后面的g标志表示全局匹配,即匹配整个字符串中的所有符合条件的部分,而不是只匹配第一个。

  1. function render (input) {
  2. const stripBracketsRe = /[()]/g
  3. input = input.replace(stripBracketsRe, '')
  4. return input
  5. }

尝试编码绕过,但是因为在JavaScript里面不会解码,因此编码绕过失败

(1)a标签

我们使用a标签,里面使用编码却可以绕过,为啥?因为编码有顺序

在href里面,先是解析url编码,然后html实体编码,最后是JavaScript编码。所以在里面先被html实体编码解析过了,括号已经生成了

<a href="javascript:alert&#40;1&#41;">test</a>

(2)iframe标签

既然html在JavaScript前面,那么具有url编码的iframe标签也可以进行

<iframe src="javascript:alert&#40;1&#41;">test</iframe>

4、第四关

和上一关payload一样,只是增加了个反引号过滤罢了

5、第五关

让我们逃逸注释符

  1. function render (input) {
  2. input = input.replace(/-->/g, '
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/184624
    推荐阅读
    相关标签