• 某xss挑战赛闯关笔记


    0x0 前言

    在sec-news发现先知上师傅monika发了一个xss挑战赛的闯关wp([巨人肩膀上的矮子]XSS挑战之旅---游戏通关攻略(更新至18关)https://xianzhi.aliyun.com/forum/read/1462.html),去看了一下发现是前几天刚发现的平台,看了一下那个绕狗教程感觉挺不错的,xss却没有玩,那么正巧就玩一下,顺便学习一波别的师傅的思路。

    http://xss.tv

    闯关地址:http://test.xss.tv

    自己做了一些,也看了一下先知monika师傅的wp,参考了几道题。做到了第十八关,剩下的做不了了,考的是flash xss得反编译分析,暂时没有去研究了。待日后在弄吧。

    注意:题目需要在firefox下做,chrome下的xss audit太猛了,或者关闭再做也是可以的。

    Level 1

    第一题很简单,没有任何过滤,输出在标签之间。

    参考payload:

    <svg/onload=alert(1)>

    Level 2

    输出点有两个

     测试之后发现第二个点可以。

    闭合掉双引号,用on事件就可以了。

    参考payload:

    " onclick=alert(1)> 需要点击一下输入框。
    " onmouseover=alert(1)> 要鼠标滑过输入框

    Level 3

    两个输出点,依旧是标签属性内的可以

    用单引号闭合即可,然后用on事件,大同小异。

    参考payload:

    ' onclick=alert(1)%0a  %0a用做换行使的input标签语法正确,主要是因为过滤了“>”。

     

    Level 4

    和level 3如出一辙,只是换成了双引号

    参考payload:

    " onclick=alert(1)%0a 

    这里就不截图了。

    Level 5

    这里过滤on事件,on会变成o_n

    故用javascript来绕过

    参考payload:

    "><a href=javascript:alert(1)> 点击一下链接即可  

     

    Level 6

    这道题同样是过滤了on,但也过滤src,href等。

    但最后发现可以大小写绕过,参考payload:

    "><svg x="" Onclick=alert(1)>
    

    Level 7

    这道题过滤script等关键字,发现置换为空,所以可以双写绕过。

    参考payload:

    ">hello<sscriptcript>alert(1)</sscriptcript>
    

    Level 8

    这道题过滤javascript关键字,会把javascript变成javasc_ript。可以通过tab制表符绕过(%09)

    参考payload:

    javasc%09ript:alert(1) 需要点击一下页面内链接
    

    Level 9

    这道题做的时候感觉有点怪怪的,不知道过滤什么,故参考了一下先知的wp,发现是必须要包含http://。

    同样这道题也过滤了javascript关键字,会变成javascr_ipt。

    参考payload:

    javascr%09ipt:alert(1)//http:// 这里必须要用单行注释符//注释掉后面的http://,这里因为在javascript伪协议里面,属于js范畴,所以单行注释符是可以使用的。
    

    Level 10

    这道题做的时候也是蒙圈,keyword过滤了用不了,没有输出点怎么破?看了一下先知的wp,发现有隐藏的form和input。

    因为也没过滤什么,最后的参考payload为:

    keyword=test&t_sort=" type="text" onclick="alert()
    

    Level 11 12 13

    这三道题都是一样的东西,从第十关过来之后会发现t_ref有东西

    参考payload:

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

    (其他两题payload是一样的,只是输入点不一样而已,12关输入点是ua,13关输入点是cookie)

    因为11题是referer,所以得用burpsuite来抓包改,直接用hackbar是改不了的。

    修改成payload之后,发包即可。

     Level 14

    看了先知的wp,才知道是图片exif 藏有xss payload。但是我自己测试不成功,就不截图了。详情可以参考先知的(https://xianzhi.aliyun.com/forum/read/1462.html?page=2)

    Level 15

    这一关考的angular js的知识,稍微百度一下相关知识

    发现ng-include有包含文件的意思,也就相当于php里面的include。看了一下先知的wp。

    发现可以包含第一关的页面,最后的参考payload:

    src='level1.php?name=<img src=x onerror=alert(1)>'
    

    Level 16

    这一关,过滤了空格。可以选择用其他符号来绕过比如(%0a%0d)

    参考payload:

    <img%0a%0dsrc=x%0a%0donerror=alert(1)>
    

    Level 17 18

    这两关的考点是一样的,同样的payload可以过。放了个swf在页面,搞得我以为是flash xss,反编译,看源码折腾了一会,发现找不到点。然后想去参考一下先知的,结果发现不是flash xss,泪奔。

    参考payload:

      onmouseover=alert(1) 注意:onmouseover前面有一个空格
    

    Level 19,20

    这两道题看了一下,都过滤了双引号,闭合不了。应该是考flash的。

    想着flash不会就跳过了这两道题,去看一下21题,但是访问报错了,不知道是没有了还是必须得做出前面的题才行。那么,也就到这里为止了。

    总结:

    经过这次闯关,学习到不少东西,也巩固了不少知识。

    做题的时候还有点心急了,导致看了参考,这样不利于自己解题。重要的是过程,明白其原理!

    不能太懒,这样只能是慢别人半拍。

  • 相关阅读:
    APP Https双向认证抓包
    剖析XSS
    php连接mysql
    linux去掉某一字符开头的行
    memcached+php客户端
    memcached-repcached
    memcached+memadmin
    Linux GPT分区
    Linux查看文件夹大小
    linux挂载windwos共享文件
  • 原文地址:https://www.cnblogs.com/r00tuser/p/7407459.html
Copyright © 2020-2023  润新知