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

目录


4.7 DOM型XSS攻击

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

Web安全原理剖析(十六)——DOM型XSS攻击图75 HTML页面 Web安全原理剖析(十六)——DOM型XSS攻击图76 替换功能

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

Web安全原理剖析(十六)——DOM型XSS攻击图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>

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


上一篇:Markdown流程图--基础语法


下一篇:7-11 社交网络图中结点的“重要性”计算 (30 分)