-
DVWA - Brute Force ( High )모의해킹/Groot - 스터디 2023. 6. 27. 16:50
DVWA - Brute Force ( High ) 입니다
개요
이 포스팅에서는 DVWA(Damn Vulnerable Web Application) - Brute Force, High 단계 실습을 진행하면서 공부했던 내용에 대한 내용을 정리해 보았고, 모두 본인이 소유한 가상머신에서 실습이 이루어졌습니다
실습환경
M1 MacBook Air
16G RAM
UTM - 가상머신
Kali Linux 2023.1 - Apple Silicon (ARM64)목차
1. 취약점 설명 및 분석 - 소스코드 분석, Brute Force
2. Brute Force
3. 대응방안
4. Secure Coing In Ubuntu - 2차인증 적용하기
취약점 설명 및 분석
소스코드 분석// 위치 : /var/www/html/dvwa/vulnerabilities/brute/source -> high.php // 중요내용 제외 삭제하였음 <?php if( isset( $_GET[ 'Login' ] ) ) { $user = $_GET[ 'username' ]; $pass = $_GET[ 'password' ]; $pass = md5( $pass ); // 데이터 베이스 확인하기 $query = "SELECT * FROM `users` WHERE user = '$user' AND password = '$pass';"; $result = mysqli_query($GLOBALS["___mysqli_ston"], $query ); if( $result && mysqli_num_rows( $result ) == 1 ) { // 유저 정보 가져오기 $row = mysqli_fetch_assoc( $result ); $avatar = $row["avatar"]; // 로그인 성공 echo "<p>Welcome to the password protected area {$user}</p>"; echo "<img src=\"{$avatar}\" />"; } else { // 로그인 실패 -> 0 ~ 3초후 응답 sleep( rand( 0, 3 ) ); echo "<pre><br />Username and/or password incorrect.</pre>"; } } ?>
입력 받은 아이디와 비밀번호를 그대로 이용하여 회원정보를 조회하고
로그인 성공일경우 성공메시지를, 0~3초후 실패할경우 실패메시지를 띄우주도록 되어있다Brute Force
user_token을 적용하지 않고 보내도 정상적으로 로그인이 된다
따라서 아이디와 비밀번호입력 횟수제한이 없으므로 Brute Force 공격이 가능하다
Brute Force
user_token을 삭제하고 보내도 정상적으로 로그인이 된다
아이디와 비밀번호만 있어도 로그인이 가능하므로 wfuzz를 사용하여 Brute Force 공격을 진행했다
제일 처음 시도한 password에서 Word의 길이가 257로 다르므로 Brute Force 공격에 성공했다
대응방안
로그인 횟수 제한, Captcha 활용, 2차 인증, ip차단을 이용하여 Brute Force 공격을 막을 수 있다
Secure Coing In Ubuntu
2차 인증 적용하기Brute Force 를 막기 위하여 PHP로 Captcha를 구현했다
아래글은 Captcha 이미지를 보고 숫자를 입력한 뒤 로그인해야 로그인에 성공하도록 만들었다
또한 숫자로만 이루어지도록 취약하게 만들어 KNN을 이용하여 Brute Force를 진행해보았다https://ruang0124.tistory.com/262
728x90'모의해킹 > Groot - 스터디' 카테고리의 다른 글
DVWA - CSRF ( Medium, High ) (0) 2023.07.26 DVWA - Command Injection ( Medium, High ) (0) 2023.07.26 DVWA - SQL Injection ( Low ) (0) 2023.06.27 DVWA - Brute Force ( Medium ) (0) 2023.06.21 DVWA - CSRF ( Low ) (0) 2023.06.04