Web网络安全分析存储型XSS攻击漏洞原理

目录
  • 存储型XSS攻击
  • 存储型XSS代码分析

存储型XSS攻击

存储型XSS页面实现的功能是:获取用户输入的留言信息、标题和内容,然后将标题和内容插入到数据库中,并将数据库的留言信息输出到页面上,如图71所示。

图71 输入留言信息

当用户在标题处写入1,内容处写入2时,数据库中的数据如图72所示。

图72 保存留言信息到数据库

当输入标题为<img src=X οnerrοr=“alert(/xss/)”/>。然后将标题输出到页面时,页面执行了<img src=X οnerrοr=“alert(/xss/)”/>,导致弹出窗口。此时,这里的XSS是持久性的,也就是说,任何人访问改URL时都会弹出一个显示“/xss/”的框,如图73所示。

图73 存储型XSS

存储型XSS代码分析

在存储型XSS的PHP代码中,获取POST参数title和参数content,然后将参数插入数据库表XSS中,接下来通过select查询将表XSS中的数据查询出开,并显示到页面上,代码如下所示。

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
    <title>留言板</title>
</head>
<body>
    <center>
    <h6>输入留言内容</h6>
    <form action="" method="post">
        标题:<input type="text" name="title"><br />
        内容:<textarea name="content"></textarea><br />
        <input type="submit">
    </form>
    <hr>
    <?php

        $con=mysqli_connect("localhost","root","root","test");
        if (mysqli_connect_errno())
        {
            echo "连接失败: " . mysqli_connect_error();
        }
        if (isset($_POST['title'])) {
            $result1 = mysqli_query($con,"insert into xss(`title`, `content`) VALUES ('".$_POST['title']."','".$_POST['content']."')");
        }

        $result2 = mysqli_query($con,"select * from xss");
            if (!$result2)
            {
                exit();
            }

        echo "<table border='1'><tr><td>标题</td><td>内容</td></tr>";
        while($row = mysqli_fetch_array($result2))
        {
            echo "<tr><td>".$row['title'] . "</td><td>" . $row['content']."</td>";
        }
        echo "</table>";
    ?>
    </center>
</body>
</html>

当用户在标题处写入<img src=1 οnerrοr=“alert(/xss/)”/>时,数据库中的数据如图74所示。

图74 存储到数据库中的XSS代码

当将title输出到页面时,同页面执行了<img src=1 οnerrοr=“alert(/xss/)”/>,导致弹窗。

以上就是Web网络安全分析存储型XSS攻击原理的详细内容,更多关于Web网络安全存储型XSS攻击的资料请关注我们其它相关文章!

(0)

相关推荐

  • Web安全解析Boolean注入攻击原理

    目录 1. Boolean注入攻击 2. Boolean注入代码分析 1. Boolean注入攻击 Boolean注入攻击的测试地址:http://127.0.0.1/sqli/boolean.php?id=1. 访问该网站时,页面返回yes,如图19所示. 图19 访问id=1时页面的结果 在URL后添加一个单引号,再次访问,发现返回结果由yes变成no,如图20所示. 图20 访问id=1'时页面的结果 访问id=1' and 1=1%23,id=1' and 1=2%23,发现返回的结果分

  • web网络安全分析反射型XSS攻击原理

    目录 反射型XSS攻击 反射型XSS代码分析 反射型XSS攻击 页面http://127.0.0.1/xss/xss1.php实现的功能是在"输入"表单中输入内容,单击"提交"按钮后,将输入的内容放到"输出"表单中,例如当输入"11",单击"提交"按钮时,"11"将被输出到"输出"表单中,效果如图68所示. 图68 输入参数被输出到页面 当访问http://127.0

  • 跨站脚本攻击XSS原理与防范实例分析

    本文实例讲述了跨站脚本攻击XSS原理与防范.分享给大家供大家参考,具体如下: 跨站脚本攻击(Cross Site Script为了区别于CSS简称为XSS)指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的. 一个简单的留言板 我们有个页面用于允许用户发表留言,然后在页面底部显示留言列表 <!DOCTYPE html> <html> <head> <?php include(

  • Web网络安全分析二次注入攻击原理详解

    目录 二次注入攻击 二次注入代码分析 二次注入攻击 二次注入攻击的测试地址:http://127.0.0.1/sqli/double1.php?username=test 和 http://127.0.0.1/sqli/double2.php?id=1. 其中,double1.php页面的功能是注册用户名,也是插入SQL语句的地方:double2.php页面的功能是通过参数ID读取用户名和用户信息. 第一步,访问double1.php?username=test',如图40所示. 图40 注册用

  • Web网络安全分析堆叠查询注入攻击原理

    目录 1.堆叠查询注入攻击 2.堆叠准入代码分析 1.堆叠查询注入攻击 堆叠查询注入攻击的测试地址:http://127.0.0.1/sqli/duidie.php?id=1. 堆叠查询可以执行多条语句,多语句之间以分好隔开.堆叠查询注入就是利用这个特点,在第二个SQL语句中构造自己要执行的语句.首先访问id=1',页面返回MySQL错误,在访问id=1'--+,页面返回正常的结果.这里可以使用Boolean注入.时间注入,也可以使用另一种注入方式--堆叠注入. 堆叠注入的语句为: ';sele

  • Web网络安全分析时间注入攻击原理

    目录 SQL注入进阶 1.时间注入攻击 2.时间注入代码分析 SQL注入进阶 1.时间注入攻击 时间注入攻击的测试地址:http://127.0.0.1/sqli/time.php?id=1. 访问该网站时,页面返回yes,在网址的后面加上一个单引号,再次访问,页面返回no.这个结果与Boolean注入非常相似,这里介绍另一种注入方法--时间盲注.它与Boolean注入的不同之处在于,时间注入是利用sleep()或benchmark()等函数让MySQL的执行时间变长.时间盲注多与IF(expr

  • Web网络安全解析宽字节注入攻击原理

    目录 宽字节注入攻击 宽字节注入代码分析 宽字节注入攻击 宽字节注入攻击的测试地址:http://127.0.0.1/sqli/kuanzijie.php?id=1. 访问id=1',页面返回的结果如图46所示,程序并没有报错,反而多了一个转义符(反斜杠). 图46 单引号被转义 从返回的结果可以看出,参数id=1在数据库查询时是被单引号包围的.当传入id=1'时,传入的单引号又被转义符(反斜杠)转义,导致参数ID无法逃逸单引号的包围,所以在一般情况下,此处是不存在SQL注入漏洞的.不过有一个特

  • Web网络安全分析存储型XSS攻击漏洞原理

    目录 存储型XSS攻击 存储型XSS代码分析 存储型XSS攻击 存储型XSS页面实现的功能是:获取用户输入的留言信息.标题和内容,然后将标题和内容插入到数据库中,并将数据库的留言信息输出到页面上,如图71所示. 图71 输入留言信息 当用户在标题处写入1,内容处写入2时,数据库中的数据如图72所示. 图72 保存留言信息到数据库 当输入标题为<img src=X οnerrοr="alert(/xss/)"/>.然后将标题输出到页面时,页面执行了<img src=X

  • Web网络安全漏洞分析存储型XSS攻击原理

    目录 存储型XSS攻击 存储型XSS代码分析 存储型XSS攻击 存储型XSS页面实现的功能是:获取用户输入的留言信息.标题和内容,然后将标题和内容插入到数据库中,并将数据库的留言信息输出到页面上,如图71所示. 图71 输入留言信息 当用户在标题处写入1,内容处写入2时,数据库中的数据如图72所示. 图72 保存留言信息到数据库 当输入标题为<img src=X οnerrοr="alert(/xss/)"/>.然后将标题输出到页面时,页面执行了<img src=X

  • Web网络安全漏洞分析DOM型XSS攻击原理

    目录 DOM型XSS攻击 DOM型XSS代码分析 DOM型XSS攻击 DOM型XSS攻击页面实现的功能是在"输入"框中输入信息,单击"替换"按钮时,页面会将"这里会显示输入的内容"替换为输入的信息,例如当输入"11"的时候,页面将"这里会显示输入的内容"替换为"11",如图75和图76所示. 图75 HTML页面 图76 替换功能 当输入<img src=1 οnerrοr=&qu

  • Web网络安全分析XSS漏洞原理详解

    目录 XSS基础 XSS漏洞介绍 XSS漏洞原理 反射型XSS 存储型XSS DOM型XSS XSS基础 XSS漏洞介绍 跨站脚本(Cross-Site Scripting,简称为XSS或跨站脚本或跨站脚本攻击)是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种.它允许恶意用户将代码注入网页,其他用户在浏览网页时就会收到影响.恶意用户利用XSS代码攻击成功后,可能得到很高的权限(如执行一些操作).私密网页内容.会话和cookie等各种内容. XSS攻击可以分为三种:反射型.存储型和DOM

  • Web网络安全分析Union注入攻击原理详解

    目录 1.Union注入攻击 2.Union注入代码分析 1.Union注入攻击 Union注入攻击的测试地址:http://127.0.0.1/sqli/union.php?di=1. 访问该网址时,页面返回的结果如图6所示. 图6 访问id=1时页面的结果 在URL后添加一个单引号,再次访问,如图7所示,页面返回结果与id=1的结果不同. 图7 访问id=1'时页面的结果 访问id=1 and 1=1,由于and 1=1为真,所以页面应返回与id=1相同的结果,如图8所示.访问id=1 an

  • Web网络安全分析XFF注入攻击原理详解

    目录 XFF注入 XFF注入代码分析 XFF注入 XFF注入攻击的测试地址:http://127.0.0.1/sqli/xff.php. X-Forwarded-for简称XFF头,它代表客户端真实的IP,通过修改X-Forwarded-for的值可以伪造客户端IP.通过Burp Suite住区数据包内容,将X-Forwarded-for设置为11.22.33.44,然后访问改URL,页面返回正常,如图62所示. 图62 XFF头 将X-Forwarded-for设置为11.22.33.44',

  • Web网络安全分析Base64注入攻击原理详解

    目录 Base64注入攻击 Base64注入代码分析 Base64注入攻击 Base64攻击的测试地址:http://127.0.0.1/sqli/base64.php?id=MQ%3d%3d. 从URL中可以看出,ID参数经过Base64编码(%3d是=的URL编码格式),解码后发现ID为1,尝试加上一个单引号并一起转换成Base64编码,如图59所示. 图59 对1'进行Base64编码 当访问id=1'编码后的网址时(http://127.0.0.1/sqli/base64.php?id=

随机推荐