当前位置: 代码迷 >> 综合 >> DVWA——XSS(Stored)(low)
  详细解决方案

DVWA——XSS(Stored)(low)

热度:100   发布时间:2023-11-19 19:46:06.0

XSS(Stored)

界面

在这里插入图片描述

源代码

<?phpif( 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() 方法用于删除字符串的头尾空白符,空白符包括:空格、制表符 tab、换行符等其他空白符等;
          stripslashes() 函数删除由 addslashes() 函数添加的反斜杠;
          可以看到代码并未对html标签进行过滤,可以构建等标签进行XSS攻击。

渗透步骤

          第一步:在name一栏输入<script>alert(‘qwe’)</script>,发现name一栏有字数限制。
          第二步:在name一栏随便输入,点击sign,使用burp suit抓包,修改name的参数,提交修改后的数据包,发现弹窗,注入成功。
修改数据包
注入成功
         第三步:在message一栏输入,发现弹窗,证明name以及message都可以进行XSS。
在这里插入图片描述
在这里插入图片描述