zoukankan      html  css  js  c++  java
  • DVWA靶场(九、存储XSS)

    一、存储XSS(low)

    1.1、代码分析,可以看到我们提交的内容会提交到数据库当中进行存储的

    
    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();
    }
    
    ?> 
    

    1.2、输入,弹框成功,并且这是持久性的,当我们再次访问页面也会存在

    二、存储XSS(medium)

    2.1、代码分析,和反射型xss一样,过滤了script,并且在Message栏加入了htmlspecialchars进行实体转换

    2.2、在Message栏不能绕过,可以在Name栏通过大小写绕过,但是Name栏输入有限制,可以通过审查元素修改

    三、存储XSS(high)

    3.1、代码分析,massage栏进行了实体转换,name栏通过正则过滤了script

    3.2、和反射型XSS一样,可以通过<img src='1' onerror=alert(/xss/)/>替换script

    四、存储XSS(impossible)

    4.1、代码分析,都使用了htmlspecialchars函数将字符转为实体

    常见防范措施

    1、过滤用户输入
    2、使用htmlspecialchars()过滤
    3、使用owasp等安全xss处理API

  • 相关阅读:
    微信小程序 单选按钮 最佳
    微信小程序 单选按钮的实现
    微信小程序 单选框实现
    Java Code To Create Pyramid and Pattern
    Java language
    npm Err! Unexpected end of JSON input while parsing near
    Node.js Express FrameWork Tutorial
    Higher-Order Function Examples
    Create First HTTP Web Server in Node.js: Complete Tutorial
    Node.js NPM Tutorial: Create, Publish, Extend & Manage
  • 原文地址:https://www.cnblogs.com/tonywell/p/14033668.html
Copyright © 2011-2022 走看看