이 도구를 이용하여 허용받지 않은 서비스 대상으로 해킹을 시도하는 행위는 범죄 행위입니다. 해킹을 시도할 때에 발생하는 법적인 책임은 그것을 행한 사용자에게 있다는 것을 명심하시기 바랍니다.
A2 - Broken Auth. - Weak Passwords (비밀번호 사전 대입 공격)
비밀번호 사전 대입 공격(Weak Passwords)은 무차별 대입 공격과 비슷해 보이지만 비밀번호를 설정하는 사람들이 선호하는 문자열을 미리 사전에 넣어놓은뒤 대입하는 공격입니다. 인증 과정의 암호화가 복잡하여도 사용자가 설정하는 비밀번호가 간단하다면 공격자는 다른 사용자로 쉽게 로그인할 수 있습니다. 여기서는 사용자들이 가장 즐겨 쓰는 비밀번호를 기록한 파일을 통하여 문자열을 하나씩 대입하여 공격을 시도합니다. 문자열을 하나씩 대입하여 공격 결과를 확인하기 때문에 무차별 대입 공격보다는 공격 속도가 빠르지만, 사전 파일에 비밀번호 정보가 없다면 공격을 실패합니다.
사전 공격에 사용할 비밀번호 목록 파일을 다운로드 (https://github.com/fuzzdb-project/fuzzdb)
FuzzDB는 퍼징에 사용되는 입력 값을 모은 데이터베이스입니다.
퍼징(Fuzzing) - 악의적인 입력 값을 주입하여 취약점 여부를 찾는 기법
FuzzDB는 국가나 사용 환경에 따라 다른 입력 값을 제공하고, 사용자나 관리자가 주로 사용하는 이름을 저장하고 있어서 디렉터리나 파일명, 아이디와 비밀번호를 퍼징으로 찾을 때 유용하게 사용됩니다.
다운로드한 파일의 압축을 해제할 때는 백신에서 악성코드로 인식을 할 수 있습니다.
fuzzdb-master.zip 파일을 압축을 해제한 다음 wordlists-user-passwd 하위에 있는 passwds 디렉터리에서 'phpbb.txt' 파일을 사용하도록 하겠습니다.
난이도 하/중
버프스위트를 실행하여 Proxy 탭에서 요청을 가로채고 Intruder로 전송합니다. Intruder 탭의 하위 탭 중에서 Positions 탭으로 이동합니다. 여기서는 아이디와 비밀번호를 모르는 상태이므로 두 변수에 사전 공격을 하기 위하여 공격 타입은 'Cluster Bomb'으로 지정하여 줍니다.
옆의 Payloads 탭으로 이동하여 공격에 사용할 페이로드 타입을 지정합니다. Payload type의 드롭다운 메뉴에서 'Simple list'를 선택하고, 그 위의 Payload set에서 1은 login 변수를 공격하는 페이로드 지정이고, 2는 password 변수를 공격하는 페이로드입니다. Payload set 2에서도 Payload type을 'Simple list'로 설정하여 줍니다.
Payload Options에서 공격에 필요한 설정을 해줍니다. [Load...] 버튼을 클릭하여 조금 전에 받아 놓았던 FuzzDB에 있는 'phpbb.txt' 파일을 불러옵니다. 또는 [Add] 버튼을 클릭하여 예상되는 문자를 바로 목록에 추가할 수도 있습니다. 파일을 불러오면 Payload count를 확인할 수 있는데 총 갯수가 184,389개나 되므로 연산 수행 시간이 오래 걸릴수 있습니다.
설정이 끝났다면 상단 메뉴 바에서 [Intruder -> Start attack] 버튼을 눌러주면 공격이 시작되는 것을 확인할 수 있습니다. 공격이 시작되면 버프스위트에서 페이로드를 계속 변경하는것을 볼수 있고, 여기서 주의 깊게 볼 부분은 'Length' 부분을 확인해 주시면 됩니다.
'test'가 Payload 1과 Payload 2에 대입되자 Length에서 다른 값을 출력하는 것을 확인할 수 있으며, 아래의 Response 탭에서도 로그인에 성공 하였다는 메시지를 확인 할수 있습니다.
추가로 Intruder -> Options 탭에서 Grep-Match, Grep-Extract 설정을 통하여 Length값이 아닌 다른 값으로도 확인 할수 있습니다.
대응방안
취약한 비밀번호를 통하여 일어나는 보안 문제는 회원 가입할 때 비밀번호 유효성 검사를 통하여 방지할 수 있습니다. 비밀번호 길이를 정하여 사용자 비밀번호에 특수 문자, 숫자, 영문 대 소문자가 포함되어 있는지 검사를 합니다.
'Code::Security > 비박스(BWAPP)' 카테고리의 다른 글
비박스(bWAPP) A2 Session Mgmt. - Cookies (HTTPOnly) (0) | 2022.07.04 |
---|---|
비박스(bWAPP) A2 Session Mgmt. - Administrative Portals (0) | 2022.06.29 |
비박스(bWAPP) A2 Broken Auth. - Password Attacks (0) | 2022.06.21 |
비박스(bWAPP) A2 Broken Auth. - Logout Management (0) | 2022.06.16 |
비박스(bWAPP) A2 Broken Auth. - Insecure Login Forms (0) | 2022.06.14 |