• xss.haozi练习通关详解


    题库链接:https://xss.haozi.me/

    0x00

    这个游戏是要弹图片才算通关,光弹窗是不行的。

    分析:

    在这里插入图片描述

    第一关没有任何限制条件,所以直接用img标签过。

    payload:

    
    
    • 1

    执行:

    在这里插入图片描述
    使用img标签,方法是使src错误,而使得onerror执行。我们就可以在onerror后面进行操作了。

    0x01

    分析:

    在这里插入图片描述
    这里给出的限制条件是

    • 1

    官方文档:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea

    执行:

    在这里插入图片描述

    0x02

    分析:

    在这里插入图片描述
    这里给出的限制条件是input标签,我们可以尝试闭合input标签,即添加"和>。

    payload:

    ">
    
    • 1

    执行:

    在这里插入图片描述

    0x03

    分析:

    在这里插入图片描述

    这里给出的限制条件是replace方法和过滤了()。我们可以通过实体编码括号和反引号来过。

    payload:

    
    
    • 1

    执行:

    在这里插入图片描述

    0x04

    分析:

    在这里插入图片描述

    这里给出的限制条件是过滤了()和反引号`,我们可以使用编码来过 。

    payload:

    
    
    • 1

    执行:

    在这里插入图片描述

    0x05

    分析:

    在这里插入图片描述

    这里给出的限制条件是过滤了右注释符,并且让你在注释符中输入,我们可以通过闭合注释来过。

    payload:

    --!>
    
    • 1

    执行:

    在这里插入图片描述

    0x06

    分析:

    在这里插入图片描述

    这里给出的限制条件是对auto和on开头只要加上等号就会变为下划线,加上大于号大于号也会变为下划线,也就是说过滤了autoforce和onerror事件。我们可以使用一个换行的技巧前提要加一个type属性值image和src映射路径属性,然后再让等于号和属性分开。

    payload:

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

    执行:

    在这里插入图片描述

    0x07

    分析:

    在这里插入图片描述

    这里给出的限制条件是使用正则表达式对<>标签进行了限制,也就是说只能<或者>,总之不能闭合标签,那么这里我们可以使用

    payload:

    • 1

    执行:

    在这里插入图片描述

    0x08

    分析:

    在这里插入图片描述

    这里给出的限制条件是对进行了过滤,如果输入就会显示后面的编码内容,并且style标签中只能出现文本或者符号,js代码无法生效,可以模仿0x06中的换行来过。

    payload:

    
    
    
     
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    执行:

    在这里插入图片描述

    0x09

    分析:

    在这里插入图片描述

    这里给出的限制条件是限制了URL,后面按正常套路闭合就行了,在使用img标签来过。

    payload:

    https://www.segmentfault.com>
    • 1

    执行:

    在这里插入图片描述

    0x0A

    分析:

    在这里插入图片描述

    这里给出的限制条件是对&、’、“、<、>、\、/进行了过滤,只要输入这些符号就会被转为实体编码,但img标签的src里是认符号的实体编码,和0x09一样直接输入就通过了。

    payload:

    https://www.segmentfault.com@xss.haozi.me/j.js
    
    • 1

    执行:

    在这里插入图片描述

    0x0B

    分析:

    在这里插入图片描述

    这里给出的限制条件是将所有的字母都换成了大写,所以要将alert(1)进行实体编码。

    payload:

    
    
    • 1

    执行:

    在这里插入图片描述

    0x0C

    分析:

    在这里插入图片描述

    这里给出的限制条件是增加了script的过滤,我们可以使用实体编码的方法来过。

    payload:

    
    
    • 1

    执行:

    在这里插入图片描述

    0x0D

    分析:

    在这里插入图片描述

    这里给出的限制条件是通过正则表达式过滤了<、/、"、'这四种符号,并且指定了我们的input在//注释语句中,首先考虑逃出注释语句,使用–>注释符逃出,不过这里注意我们在使用语句alert(1)时需要换行。

    payload:

    -->
    alert(1)
    -->
    
    • 1
    • 2
    • 3

    执行:

    在这里插入图片描述

    0x0E

    分析:

    在这里插入图片描述

    这里给出的限制条件是使用正则表达式过滤了所有字母,并且将字母小写转为了大写,如果输入

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    执行:

    在这里插入图片描述

  • 相关阅读:
    scons体验以及rtthread中的简单使用
    Linux设置密码复杂度
    【算法训练-二叉树 六】【路径和计算】路径总和I、路径总和II、路径总和III、二叉树的最大路径和
    掌握Pytorch模型 压缩 裁剪与量化
    Anaconda 克隆环境
    Windows操作系统进阶:防火墙基础和Windows Defender
    番茄小说推文怎么申请授权?
    深度学习 Day 16——利用卷神经网络实现咖啡豆的识别
    SpringBoot ApplicationEvent详解
    Jetpack:013-Jetpack底部导航栏
  • 原文地址:https://blog.csdn.net/weixin_53002381/article/details/126110718