반응형
SMALL

1. 브루트 포스 공격 개요

 

[그림 1-1] 브루트 포스 공격

[출저: 화이트헤커를 위한 웹 해킹의 기술]

브루트 포스 공격이란 특정 정보(사용자의 패스워드) 알아내는 공격이다. 만약 패스워드가 일치하지 않아도 계속 바꿔가며 공격할 있고 시간이 오래 걸리지만 언젠가는 계정 정보가 일치해 로그인이 가능하게 된다. 패스워드가 너무 쉽거나 추측 가능하게 설정하면 브루트 포스 공격에 의해 너무 쉽게 노출될 있다. 하지만 특수문자를 섞어서 설정하면 공격에 시간이 상당히 많이 소요되기 때문에 패스워드가 쉽게 노출될 없게 된다. 브루트 포스 공격 방지를 위해 페이지 내에 방어도 중요하지만 사용자의 비밀번호 설정 방식도 브루트 포스 공격을 예방하는 방법 하나가 있다.

 

2. 브루트 포스 공격 실습

(1) 자동 브루트 포스 공격

 

[그림 2-1] Intruder

브루트 포스 탭에서 계정 정보를 입력 프록시를 잡는다. 계정은 admin, 1234임을 있고 현재 정보를 Intruder 탭으로 보낸다.

 

[그림 2-2] Positions

 

페이로드 포지션에서 현재 패스워드 값을 알아내는게 목적이기 때문에 패스워드 부분에만 $ 표시한다.

 

[그림 2-2] payloads

페이로드 설정에서 Payload type Brute Forcer 선택한다. Payload Options에서 Character set 자동 지정되는데 영문자부터 숫자 9까지 지정된다. 부분에 특수문자들을 추가하면 Payload count 늘어나고 Max length 숫자를 높이면 unknown 표시된다. 그만큼 브루트 포스 공격을 하는데 있어서 많은 시간이 소요된다는 의미다.

 

[그림 2-3] 브루트 포스 공격

브루트 포스 공격 화면이다. 문자를 하나씩 넣어가며 자동화 공격을 시도하고 있다. 만약   응답 요청 길이가 다른 숫자 값으로 나온다면 문자열이 사용자 계정의 비밀번호다. 하지만 Brute forcer 이용한 공격은 많은 시간이 걸리기 때문에 비효율적인 방법의 브루트포스 공격이 있다.

 

(2) Dictionary 브루트 포스 공격

[그림 2-4] Intruder

브루트 포스 탭에서 계정 정보를 입력 프록시를 잡는다. 계정은 admin, 1234임을 있고 현재 정보를 Intruder 탭으로 보낸다.

 

[그림 2-5] Positions

페이로드 포지션에서 현재 패스워드 값을 알아내는게 목적이기 때문에 패스워드 부분에만 $ 표시한다.

 

[그림 2-6] payloads

Payload type Simple list 선택한 Payload Options에서 사용자들이 가장 많이 사용하는 패스워드를 담은 txt 파일을 만든 업로드 Start Attack 버튼을 누른다.

 

[그림 2-7] 브루트 포스 공격

브루트 포스 공격 시도 결과 응답 요청 길이가 다른 것이 있다. 2 응답 요청 길이는 5293이지만 1 응답 요청 길이는 5358이다. 사용자 계정 비밀번호는 1234라는 것을 있다. 패스워드가 올바르지 않은 경우면 로그인 실패 페이지가 응답되지만 패스워드가 올바른 경우면 로그인 성공 페이지가 출력되게 된다. , 1 요청은 로그인에 성공한 페이지가 응답된 것이라고 생각할 있다.

 

[그림 2-8] 소스 코드

소스 코드를 보면 비밀번호는 md5 해쉬화 해서 취약점은 발생하지 않는다. 하지만 username 별다른 조치 없이 SQL 문에 그대로 입력 됨을 있다. 하지만 쿼리 구문 아래 코드에서 SQL 결과 값이 1개일 때만 로그인 된다는 것을 있다. 경우에 사용자 비밀번호를 알지 못해도 SQL 인젝션 취약점이 발생할 있음을 추측할 있다.

반응형
LIST

'웹해킹 > DVWA' 카테고리의 다른 글

SQL 인젝션 공격 (1)  (0) 2020.01.28
브루트 포스 공격 대응 방안  (0) 2020.01.26
Reflected XSS 공격 (2)  (0) 2020.01.21
Reflected XSS 공격 (1)  (0) 2020.01.21
Stored XSS 공격  (0) 2020.01.21
블로그 이미지

만년필석사

,