본문 바로가기

웹해킹/DVWA

DVWA XSS(Stored)(medium) 롸업

low 레벨과 구성 창은 똑같다.

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

?>

구성 코드이다.

여기서도 low 레벨과 다른 점은 <script> 태그를 필터링하는 부분이다.

XSS의 medium레벨 실습들은 전부 <script> 태그 필터링 우회로 풀면 되는 것 같다.

 

코드를 보면 message는 strip_tags 함수로 모든 태그를 지워버리기 때문에 아예 태그를 입력할 수가 없다.

하지만 name은 str_replace 함수로 <script> 태그만 필터링하기 때문에 이전의 XSS 문제들에서 했던 방법을 사용할 수 있다.

 

name 부분에 스크립트를 입력하려고 하면 길이 제한 때문에 안되는데 이렇게 maxlength 부분을 찾아서 지워주면 된다.

<sc<script>ript> alert(1)</script>

이렇게 <sc<script>ript>로 우회할 수 있다.

 

<script> 태그 말고 <img> 태그를 사용하는 방법도 있다.

<img src="" onerror='alert(1)'>

이렇게 작성하면 된다.

'웹해킹 > DVWA' 카테고리의 다른 글

DVWA JavaScript(medium) 롸업  (0) 2023.11.17
DVWA CSP Bypass(medium) 롸업  (0) 2023.11.17
DVWA XSS(Reflected)(medium) 롸업  (0) 2023.11.16
DVWA XSS(DOM)(medium) 롸업  (0) 2023.11.16
DVWA Weak Session IDs(medium)롸업  (0) 2023.11.16