특징
- 흔히 무차별 대입 공격이라고 불리는 공격 기법
- 특정한 암호를 알아내기 위해 공격자가 모든 무작위 값들의 조합을 반복적으로 입력함으로써 해킹을 시도하는 공격
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 같은 추가 보안 조치가 없음
대응방안
- 길고 복잡한 암호 ( 대/소문자, 특수 문자 포함 10자 이상 등 ) 사용
- 특정 횟수 잘못된 암호를 사용하여 로그인 시도 시 계정 잠금 등의 보안 설정
- CAPTCHA를 로그인 과정에 추가시켜 컴퓨터를 이용한 자동화 공격을 방지
- 특정 계정은 특정 IP대역에서만 접속할 수 있도록 옵션을 설정
- 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 |