zoukankan      html  css  js  c++  java
  • DVWA-12.1 XSS (Stored)(存储型跨站脚本)-Low

    Low Level

    查看代码

    <?php
    
    if( isset( $_POST[ 'btnSign' ] ) ) {
        // Get input
        $message = trim( $_POST[ 'mtxMessage' ] );
        $name    = trim( $_POST[ 'txtName' ] );
    
        // Sanitize message input
        $message = stripslashes( $message );
        $message = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $message ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
    
        // Sanitize name input
        $name = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $name ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
    
        // Update database
        $query  = "INSERT INTO guestbook ( comment, name ) VALUES ( '$message', '$name' );";
        $result = mysqli_query($GLOBALS["___mysqli_ston"],  $query ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );
    
        //mysql_close();
    }
    
    ?>

    相关函数介绍

    trim(string,charlist)

    函数移除字符串两侧的空白字符或其他预定义字符,可选参数charlist支持添加额外需要删除的字符,如果被省略,则移除以下所有字符:

    • "" - NULL
    • " " - 制表符
    • " " - 换行
    • "x0B" - 垂直制表符
    • " " - 回车
    • " " - 空格

    mysql_real_escape_string(string,connection)

    函数会对字符串中的特殊符号(x00, , ,,‘,“,x1a)进行转义。

    stripslashes(string)

    函数删除字符串中的反斜杠。

    可以看到,对输入并没有做XSS方面的过滤与检查,且存储在数据库中,因此这里存在明显的存储型XSS漏洞。

    漏洞利用

    message一栏输入<script>alert('xss')</script>,成功弹框

    用户名无法直接做XSS,因为前端代码有用户名长度限制

    但是可以通过抓包的方式绕过。

  • 相关阅读:
    webpack基本使用
    vue-路由-显示名称
    vue-父组件和路由
    vue-路由
    vue-父子组件和ref
    vue-组件
    go-面向对象编程(上)
    JavaScript的历史
    vue-列表动画
    钩子函数实现小球弹落
  • 原文地址:https://www.cnblogs.com/zhengna/p/12781390.html
Copyright © 2011-2022 走看看