특징

  • 흔히 무차별 대입 공격이라고 불리는 공격 기법
  • 특정한 암호를 알아내기 위해 공격자가 모든 무작위 값들의 조합을 반복적으로 입력함으로써 해킹을 시도하는 공격

DVWA실습

Low 보안레벨에서 실습을 진행

  • 먼저 해당 페이지의 로그인 화면에서 계정과 비밀번호 임의 입력 후 로그인 시도
  • 미리 설정한 Burp suite를 이용해 패킷 인터셉트

  • Burp suite를 이용하여 Proxy로 패킷 인터셉트
  • 이 후 해당 패킷 조작을 Burp suite의 기능을 이용해 자동화 하기 위해 Intruder 탭으로 전송

  • 해당 패킷을 Intruder 탭으로 전송
  • Burp suite 의 자동화 기능을 이용해 사용자 계정 값과 비밀번호 값을 자동으로 수정하도록 Add$ 버튼을 눌러 설정
  • Cluster bomb 공격 방식을 설정하여 모든 조합으로 공격

  • 무작위로 조합할 계정값과 비밀번호값 입력

  • 자동으로 조합하여 Brute Force 공격 실행
  • 수 차례 공격을 수행한 결과 다른 패킷들과 Length 길이가 다른 실제 로그인된 것으로 의심되는 패킷을 하나 확인

  • 위에서 확인한 값으로 로그인 시도
  • Brute Force 공격으로 알아낸 값으로 로그인에 성공

소스코드 분석

<?php

if( isset( $_GET[ 'Login' ] ) ) {
    // Get username
    $user = $_GET[ 'username' ];

    // Get password
    $pass = $_GET[ 'password' ];
    $pass = md5( $pass );

    // Check the database
    $query  = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';";
    $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()) ? false : $___mysqli_res)) . '</pre>' );

    if( $result && mysqli_num_rows( $result ) == 1 ) {
        // Get users details
        $row    = mysqli_fetch_assoc( $result );
        $avatar = $row["avatar"];

        // Login successful
        echo "<p>Welcome to the password protected area {$user}</p>";
        echo "<img src=\"{$avatar}\" />";
    }
    else {
        // Login failed
        echo "<pre>Username and/or password incorrect.</pre>";
    }

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

?>
  • 비밀번호 입력 횟수 무제한
  • 복호화가 쉬운 MD5 사용
  • 로그인 실패시 지연시간 없음
  • CAPTCHA 같은 추가 보안 조치가 없음

대응방안

  1. 길고 복잡한 암호 ( 대/소문자, 특수 문자 포함 10자 이상 등 ) 사용
  2. 특정 횟수 잘못된 암호를 사용하여 로그인 시도 시 계정 잠금 등의 보안 설정
  3. CAPTCHA를 로그인 과정에 추가시켜 컴퓨터를 이용한 자동화 공격을 방지
  4. 특정 계정은 특정 IP대역에서만 접속할 수 있도록 옵션을 설정
  5. MFA(Multi-Factor Authentication)를 사용하여 추가적인 사용자 인증 과정 설정

'CERT' 카테고리의 다른 글

웹 모의해킹: File Inclusion  (0) 2024.10.05
웹 모의해킹: CSRF  (2) 2024.10.05
웹 모의 해킹: Command Injection  (0) 2024.10.05
웹 해킹 실습 환경 구성  (3) 2024.10.05
Proxy 프록시  (0) 2024.08.16

+ Recent posts