정의
모든 경우의 수에 대한 값을 대입하는 공격
Burp Suite의 intruder 기능을 이용하여 brute force 공격 가능
시간이 매우 오래 걸리기때문에 비효율적임
Dictionary attack
통계적으로 많이 사용되는 비밀번호 목록을 만들어 대입하는 공격
kali linux에 /usr/share/john/password.lst 파일에 비밀번호 목록 존재
dvwa의 공격 난이도를 low로 설정 후 dictionary attack을 수행한다.
Burp Suite의 intruder 기능을 이용한다.
비밀번호값에 공격을 수행하기 위해 타겟으로 설정한다.
password.lst 파일을 로드 후 공격을 실행한다.
password 값을 대입했을때 응답 데이터의 길이가 다르다.(5086 bytes)
따라서 비밀번호는 password이다.
대응방안
Medium level
else {
// Login failed
sleep( 2 );
echo "<pre><br />Username and/or password incorrect.</pre>";
}
로그인 실패시 2초 동안 시간을 지연시킴으로써 대응한다.
High level
else {
// Login failed
sleep( rand( 0, 3 ) );
echo "<pre><br />Username and/or password incorrect.</pre>";
}
0~3초 동안 시간을 지연시킴으로써 대응한다. Medium level에서처럼 2초로 설정하면 해커는 2초동안 응답이 없으면 틀린 패스워드임을 인지하게 된다. 이를 기반으로 자동화된 악의적인 프로그램을 막을 수 있다.
Impossible level
일정 횟수 로그인 실패시 일정 시간동안 대기해야한다. 이 방식을 locking이라고 한다.
강력한 방법이지만 일부러 특정 사용자의 아이디로 로그인을 실패하여 해당 사용자가 로그인할 수 없게 악용할 수 있다.
요약
Brute Force 공격을 대응하기 위해 잘못된 로그인 시도가 발생할때 응답을 느리게 하거나 여러 번 로그인 실패 시 일정 시간 locking하여 공격을 무력화시킨다.
또 다른 방법으로 그림 속 문자를 맞추는 CAPTCHA를 사용하여 사람이 로그인하는지 확인할 수 있다.
'dvwa' 카테고리의 다른 글
SQL Injection (0) | 2023.05.16 |
---|---|
File Upload (0) | 2023.05.06 |
File Inclusion (0) | 2023.05.06 |
CSRF (0) | 2023.05.05 |
Command Injection (0) | 2023.05.02 |