본문 바로가기

웹해킹/DVWA

DVWA CSRF(low) 롸업

<?php
if( isset( $_GET[ 'Change' ] ) ) {
    // Get input
    $pass_new  = $_GET[ 'password_new' ];
    $pass_conf = $_GET[ 'password_conf' ];

    // Do the passwords match?
    if( $pass_new == $pass_conf ) {
        // They do!
        $pass_new = ((isset($GLOBALS["___mysqli_ston"]) && is_object($GLOBALS["___mysqli_ston"])) ? mysqli_real_escape_string($GLOBALS["___mysqli_ston"],  $pass_new ) : ((trigger_error("[MySQLConverterToo] Fix the mysql_escape_string() call! This code does not work.", E_USER_ERROR)) ? "" : ""));
        $pass_new = md5( $pass_new );

        // Update the database
        $current_user = dvwaCurrentUser();
        $insert = "UPDATE `users` SET password = '$pass_new' WHERE user = '" . $current_user . "';";
        $result = mysqli_query($GLOBALS["___mysqli_ston"],  $insert ) or die( '<pre>' . ((is_object($GLOBALS["___mysqli_ston"])) ? mysqli_error($GLOBALS["___mysqli_ston"]) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)) . '</pre>' );

        // Feedback for the user
        echo "<pre>Password Changed.</pre>";
    }
    else {
        // Issue with passwords matching
        echo "<pre>Passwords did not match.</pre>";
    }

    ((is_null($___mysqli_res = mysqli_close($GLOBALS["___mysqli_ston"]))) ? false : $___mysqli_res);
}
?>

CSRF의 구성 코드이다.

이렇게 비밀번호를 바꾸는 기능이 구현 되어있다.

이전에 했던 Brute Force 창에서 admin과 password로 로그인을 했었는데 이 비밀번호를 바꿀 수 있다.

CSRF 창에서 비밀번호를 qwer로 바꾸고 다시 로그인을 해보면

이렇게 qwer로 로그인을 할 수가 있다.

 

그래서 CSRF 공격은 어떻게 하는지 고민했는데

XSS(Stored) 창에 게시글을 올릴 수 있는 페이지가 있었다.

여기에 CSRF 공격 코드를 게시글로 올려서 게시글을 조회하면 비밀번호가 바뀌게 공격을 할 수 있다.

<img src="http://127.0.0.1/dvwa/vulnerabilities/csrf/?password_new=ddd&password_conf=ddd&Change=Change">

이렇게 올려 놓으면 된다.

그런데 게시글을 올리려고 하면 문제가 생길텐데 Max Length가 50으로 정해져 있기 때문이다.

이렇게 maxlength를 500으로 바꾸고 공격 코드를 올리면 된다.

이렇게 ddd로 로그인을 할 수 있게 된다.

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

DVWA File Upload(low) 롸업  (0) 2023.11.07
DVWA File Inclusion(low) 롸업  (0) 2023.11.07
DVWA Command Injection(low) 롸업  (0) 2023.11.06
DVWA Brute Force(low) 롸업  (0) 2023.11.06
DVWA 환경 구축  (0) 2023.11.06