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

  • 相关阅读:
    来自师兄的Django2.0笔记摘录
    2019-03-24 周日
    关于Djanggo的环境变量
    接口文档模板(Markdown)
    Nginx配置
    虚拟机和宿主机通信
    node+mongodb+win7
    【进击后端】linux安装最新版nodejs
    【进击后端】ubuntu 快速安装node mongodb express
    【进击后端】mongodb入门
  • 原文地址:https://www.cnblogs.com/tonywell/p/14033668.html
Copyright © 2011-2022 走看看