Code::Security/비박스(BWAPP)

비박스(bWAPP) A2 Broken Auth. - Password Attacks

태군 코드 2022. 6. 21. 18:01
반응형

이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.
 
인증 결함(Broken Authentication)이란 인증에 필요한 사용자의 계정 정보를 노출하는 취약점으로 보통 웹 페이지의 HTML 코드에 계정 정보를 노출하거나 인증을 GET 메서드로 요청하여 URL에 계정 정보가 노출되기도 합니다. 웹 사이트 가입 시 추측할 수 있거나 무차별 대입 공격이 가능한 비밀번호(예 1234, admin 등) 입력을 허용하는 경우도 포함됩니다. 이외에도 비밀번호 찾기 기능에서 사용자의 계정 정보를 노출하기도 합니다.

A2 - Broken Auth. - Password Attacks (비밀번호 무차별 대입 공격)

 

비밀번호 무차별 대입 공격(Password Attacks)은 사용자에 대한 계정 정보를 획득하기 위하여 비밀번호로 입력 가능한 모든 문자 조합을 입력하여 사용자의 계정과 비밀번호가 일치할 때까지 대입하는 공격입니다. 일일이 수동으로 입력하는 것보다는 자동화 도구를 이용하는 것이 효율적입니다. 무차별 대입 공격을 할 때는 웹 사이트의 비밀번호 정책을 파악한 다음 조합할 문자의 구성과 최소 문자열 길이를 정합니다. 문자와 숫자가 조금만 복잡해져도 가능한 조합의 가지 수가 많아지기 때문에 공격에 성공하기까지는 시간이 많이 걸립니다.

 

난이도 하

ba_pwd_attacks_1.php

무차별 대입 공격을 하기 위하여 버프스위트의 'Intruder' 기능을 사용하도록 하겠습니다.

 

버프스위트 사용법을 모르시는 분들은 버프스위트 사용법 사이트를 참고 바랍니다.

 

burpsuite Intruder

 

반응형

Burpsuite Proxy 탭에서 HTTP 요청을 가로챈 다음 Intruder로 보냅니다. Intruder로 보낼 때는 가로챈 요청의 내용이 보이는 창에서 오른쪽 마우스 버튼을 클릭한 후 'Send to Intruder' 메뉴를 선택하여 줍니다.

 

Positions 탭에서 페이로드 위치 지정

Intruder탭의 하위 탭인 'Positions'으로 이동하면 Payload가 들어갈 위치를 '§' 문자로 지정하여 줍니다. Payload로 들어갈 위치를 지정하여 줄 때는 'password' 변수에만 Payload를 실을 수 있도록 'Add §'와 'Clear §'를 사용하여 Payload의 위치를 변경하여 줍니다.

 

Payload Type 변경

Payloads 탭으로 이동하여 공격 타입을 지정하여 줍니다. 무차별 대입 공격을 시도하므로 'Brute forcer'로 공격 타입을 바꿔 줍니다. 공격 타입을 바꾼 다음 옵션을 선택하여 주는데 사용자 'bee'의 비밀번호가 3 글자인 것을 알고 있으므로 'Min length' 옵션을 3으로 지정합니다. 이외에 사용 가능한 옵션으로는 'Character set', 'Max length'가 있는데 'Character set'는 무차별 대입 공격에 사용할 문자 종류를 지정하고, 'Max legnth'는 대입 문자의 최대 길이를 지정합니다.

옵션을 모두 설정하였다면 상단에 있는 'Intruder'메뉴에서 'Start attack'을 눌러줍니다. 해당 버튼을 누르면 새 창이 뜨며선 무차별 대입 공격을 실행하는 화면을 보실 수 있습니다.

 

Brute Force 공격

공격 결과를 살펴보면 공격중 결과 값이 다르게 나오는 Payload가 있습니다. 보통 상태 코드가 다르거나 다른 Payload와 길이가 차이가 납니다. 결과 값이 다른 Payload를 발견하면 결과 페이지 하단에 있는 [Response] 탭에서 [Raw], [Rander] 탭을 확인합니다. 여기서는 Length 기준으로 정렬을 하면 결과 값이 다른 하나를 확인할 수 있으며 Raw 탭을 살펴보면 Successful Login! 문구를 확인할 수 있습니다. 그러므로 비밀번호는 "bug"라는 것을 알 수 있습니다.

 

난이도 상에서는 'ba_pwd_attacks_4.php' 페이지를 호출합니다. 이 페이지는 아이디와 비밀번호를 알고 있어도 캡챠를 입력하여야 하므로, 무차별 대입 공격이 불가능 합니다.

 

ba_pwd_attacks_4.php

'ba_pwd_attacks_4.php' 페이지의 소스 코드를 확인하면 로그인 기능과 함께 캡챠 이미지를 제공하는 'captcha_box.php'를 호출하는 것을 알 수 있습니다.

 

위에서 알아본 것처럼 무차별 대입 공격을 자동화하는 도구로 아이디, 비밀번호를 쉽게 알아낼 수 있으므로 로그인과 동시에 캡챠를 입력받거나 아이디 당 비밀번호 입력 횟수를 제한하여 무차별 대입 공격을 방어할 수 있습니다.

반응형