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

    Medium Level

    查看代码

    <?php
    
    if( isset( $_POST[ 'btnSign' ] ) ) {
        // Get input
        $message = trim( $_POST[ 'mtxMessage' ] );
        $name    = trim( $_POST[ 'txtName' ] );
    
        // Sanitize message input
        $message = strip_tags( addslashes( $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)) ? "" : ""));
        $message = htmlspecialchars( $message );
    
        // Sanitize name input
        $name = str_replace( '<script>', '', $name );
        $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();
    }
    
    ?>

    相关函数介绍

    strip_tags()

    函数剥去字符串中的 HTML、XML 以及 PHP 的标签,但允许使用标签。

    addslashes()

    函数返回在预定义字符(单引号、双引号、反斜杠、NULL)之前添加反斜杠的字符串。

    htmlspecialchars()

    函数把预定义的字符转换为 HTML 实体。

    可以看到,由于对message参数使用了htmlspecialchars函数进行编码,因此无法再通过message参数注入XSS代码,但是对于name参数,只是简单过滤了<script>。同反射型XSS的Medium级别一样,我们可以使用大写或者双写绕过。

    漏洞利用

    方法1 大写绕过

    抓包,将name参数值改为<SCRIPT>alert('xss')</SCRIPT>,成功弹框

    方法2 双写绕过

    抓包,将name参数值改为<sc<script>ript>alert('xss')</script>,成功弹框

  • 相关阅读:
    第四周编程总结
    第三周编程总结
    第二周编程总结
    查找整数 编程总结
    求最大值及其下标 编程总结
    C语言I博客作业04
    C语言I博客作业03
    C语言I博客作业02
    作业01
    第八周作业
  • 原文地址:https://www.cnblogs.com/zhengna/p/12781651.html
Copyright © 2011-2022 走看看