当前位置:   article > 正文

Web安全原理剖析(十六)——DOM型XSS攻击

dom型xss


4.7 DOM型XSS攻击

  DOM型XSS攻击页面实现的功能是在“输入”框中输入信息,单击“替换”按钮时,页面会将“这里会显示输入的内容”替换为输入的信息,例如当输入“11”的时候,页面将“这里会显示输入的内容”替换为“11”,如图75和图76所示。

图75 HTML页面 图76 替换功能

  当输入<img src=1 οnerrοr=“alert(/xss/)”/>时,单击“替换”按钮,页面弹出消息框,如图77所示。

图77 DOM XSS

  从HTML源码中可以看到,存在JS函数tihuan(),该函数的作用是通过DOM操作将元素id1(输出位置)的内容修改为元素dom_input(输入位置)的内容。


4.8 DOM型XSS代码分析

  DOM型XSS程序只有HTML代码,并不存在服务器端代码,所以此程序并没有与服务器端进行交互,代码如下所示。

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <title>Test</title>
    <script type="text/javascript">
        function tihuan()
        {
            document.getElementById("id1").innerHTML = document.getElementById("dom_input").value;
        }
    </script>
</head>
<body>
    <center>
    <h6 id="id1">这里会显示输入的内容</h6>
    <form action="" method="post">
        <input type="text" id="dom_input" value="输入"><br />
        <input type="button" value="替换" onclick="tihuan()">
    </form>
    <hr>
    </center>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

  单击“替换”按钮时会执行JavaScript的tihuan()函数,而tihuan()函数是一个DOM操作,通过document.getElementByld的id1的节点,然后将节点id1的内容修改成id为dom_input中的值,即用户输入的值。当输入<img src=1 οnerrοr=“alert(/xss/)”/>时,单击“替换”按钮,页面弹出消息框,但由于是隐式输出的,所以在查看源代码时,看不到输出的XSS代码。


声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/335359
推荐阅读
相关标签
  

闽ICP备14008679号