Brute Force 란?
비밀번호를 조합하거나 사전 파일에 들어있는 문자들을 각각 대입하여 공격하는 방식으로 가능한 모든 문자를 조합하여 공격하므로 비밀번호의 자릿수가 늘어 날 수록 시간이 기하급수적으로 늘어난다.
low level
먼저 아이디/비밀번호를 123으로 입력하여 로그인을 해보자
단순 아이디와 비밀번호가 틀렸다는 문구만 출력되고 아무런 조치가 없는 것을 보아 brute force공격에 취약한것을 알 수 있다.
버프스위트로 요청을 확인해 봤을때 아이디/비밀번호가 POST방식이 아닌 GET방식으로 전송 되는것을 알 수 있다.
이로 인해 아이디/비밀번호가 노출되어 변경하여 요청을 보내면 공격 할 수 있다.
버프스위트 intruder 기능을 통해 position에서 아이디/비밀번호를 설정해주고 공격 타입은 Cluster bomb으로 설정 한다.
payload 설정에서는 brute force로 설정후 최소,최대 길이를 설정해줄수있다.
여기서 brute foce의 단점을 알 수 있는데 아이디가 4자리로만 한정 되었다 설정했음에도 1,679,616의 경우의 수가 나오는것을 알 수 있다. 우리는 비밀번호까지 알아내야 하고 아이디/비밀번호의 길이가 늘어 날 수록 경우의 수가 기하급수적으로 늘어나는것을 알 수 있다.
공격 결과 하나하나 대입하여 요청을 확인하는것을 알 수 있다.
이렇게 대입하여 알아 낼 수 있지만 시간이 오래 걸리므로 Payload type을 Simple list로 아이디와 비밀번호를 알아냈을때 어떤 차이가 있을지 알아보자
아이디와 비밀번호가 admin, password일때 응답의 길이가 다른것을 알 수 있다. 그러므로 아이디는 admin 비밀번호는 password이다.
medium level
코드를 보면 low 레벨과 다르게 sleep 함수로 로그인에 실패하면 2초간 지연이 생기는것을 알 수 있다.
하지만 반복적으로 들어오는 요청에 대한 대응이 없기 떄문에 시간이 오래 걸릴 뿐 low레벨에서 진행 했던 버프 스위트를 이용하여 공격 할 수 있다.
이번 실습을 통해 brute force 공격의 한계를 알아볼 수 있었다.
'Web > DVWA 실습' 카테고리의 다른 글
DVWA - Insecure CAPTCHA (low,medium) 실습 (0) | 2022.10.30 |
---|---|
DVWA - File Upload (low,medium) 실습 (0) | 2022.10.30 |
DVWA - File Inclusion (low,medium) 실습 (0) | 2022.10.30 |
DVWA - CSRF(low,medium) 실습 (0) | 2022.10.30 |
DVWA - Command Injection(low,medium) 실습 (0) | 2022.10.30 |