1. 程式人生 > 其它 >DVWA——XSS(Stored)(low)

DVWA——XSS(Stored)(low)

技術標籤:# low安全

XSS(Stored)

介面

在這裡插入圖片描述

原始碼

<?php

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

程式碼分析

trim() 方法用於刪除字串的頭尾空白符,空白符包括:空格、製表符 tab、換行符等其他空白符等;
stripslashes() 函式刪除由 addslashes() 函式新增的反斜槓;
可以看到程式碼並未對html標籤進行過濾,可以構建等標籤進行XSS攻擊。

滲透步驟

第一步:在name一欄輸入<script>alert(‘qwe’)</script>,發現name一欄有字數限制。
第二步:在name一欄隨便輸入,點選sign,使用burp suit抓包,修改name的引數,提交修改後的資料包,發現彈窗,注入成功。
修改資料包
注入成功
第三步:在message一欄輸入,發現彈窗,證明name以及message都可以進行XSS。
在這裡插入圖片描述
在這裡插入圖片描述