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

  • 相关阅读:
    QT实现软件重启
    Qt 延时
    gcc 创建库及使用
    verilog 奇数分频设计
    内核中的 likely() 与 unlikely()
    TFT LCD 参数详解
    手动安装m4, autoconf, automake, libtool
    [其他] 蒙特卡洛(Monte Carlo)模拟手把手教基于EXCEL与Crystal Ball的蒙特卡洛成本模拟过程实例:
    Origin9.1如何绘制风向玫瑰图(Binned Data)?
    Origin9.1如何使用原始数据(Raw Data)绘制风向玫瑰图
  • 原文地址:https://www.cnblogs.com/tonywell/p/14033668.html
Copyright © 2011-2022 走看看