■ 개요
- 웹 어플리케이션에 존재하는 비밀번호 찾기 기능 또는 관리자에 의한 임시 비밀번호 발급 시 사용자 인증이 미흡하거나 비밀번호를 화면에 즉시 출력할 경우 공격자가 불법적으로 다른 사용자의 비밀번호를 획득, 변경, 복구 할 수 있는 취약점
- 주요정보통신기반시설 웹 취약점 진단 기준으로 14. 취약한 패스워드 복구 취약점에 해당
■ 취약한 패스워드 복구 CheckList
- 비밀번호 복구 시, 비밀번호가 화면에 바로 출력이 되는가?
- 비밀번호 복구 과정에서 인증 절차가 미흡하여 발급된 임시 비밀번호가 공격자쪽으로 전달이 되는가?
■ 실습 환경
-PortSwigger Web Academy
■ 파일 업로드 실습1
Step 1) PortSwigger web academy Lab 목표가 취약한 패스워드 복구 취약점을 활용하여 carlos 계정 패스워드를 탈취 후 로그인하는 것이 목표
Step 2) 패스워드 분실 버튼을 클릭 후 기존에 발급받은 ID인 'wiener' 입력 시, wiener 이메일 주소가 등록된 서버로 전달됨을 확인. Email Client를 통해 확인 시, 임시 패스워드 토큰을 생성받은 것을 확인할 수 있으며 해당 하이퍼링크로 접근 시, 패스워드 변경 후 정상적으로 로그인됨을 확인.
Step 3) 희생자의 메일 주소 및 메일 계정에 대한 정보를 몰라도 Host값을 공격자 서버로 변조하여 임시 비밀번호 경로가 공격자 서버로 전달됨을 확인할 수 있었으며, 발급받은 경로로 이동 시 타 계정 비밀번호 비밀번호 변경 및 접근 가능 확인.
웹에서 통신할 때 'HOST'라는 헤더가 존재하는데, 서버의 도메인 이름을 나타내는 헤더로 사용된다. 웹상에서 'host' 헤더 입력값에 대한 적절한 검증을 하지 않을 경우, 공격자는 이를 이용하여 정상적인 'host'가 아닌 공격자 서버로 변조하여 피싱 사이트 접근, XSS 실행, 암호 재설정 등의 공격이 가능하다.
■ 취약한 패스워드 복구 대응 방안
① 수동 점검
- 패스워드 복구 과정에서 설정해 둔 이메일 또는 연락처가 아닌 홈페이지에 바로 임시 비밀번호가 뜨거나, 이메일로 전달된 패스워드가 난수 값이 아닌 고정 값으로 발급되는 지 여부를 파악
- Host 헤더 등을 변조하여 설정해 둔 이메일이 아닌 서버로 임시 비밀번호가 발급되는 지 테스트 필요
■ 취약한 패스워드 복구 대응 방안
1. 사용자의 개인정보(연락처, 주소, 메일 주소 등)로 패스워드를 생성하지 말아야 하며, 난수를 이용한 불규칙적이고 최소 길이(6자 이상 권고) 이상의 패턴이 없는 패스워드를 발급하여야 함
2. 사용자 패스워드를 발급해주거나 확인해줄 때 웹 사이트 화면에 바로 출력해주는 것이 아니라 인증된 사용자 메일이나 SMS로 전송해주어야 함
3. 호스트 헤더에 대해 올바르게 유효성을 검증해야 하며, 허용된 도메인만 입력받을 수 있도록 화이트리스트로 설정
'모의해킹&웹취약점진단 > 주•통기반 웹 취약점 점검' 카테고리의 다른 글
02. 포맷 스트링 취약점 (0) | 2024.01.02 |
---|---|
24. 관리자 페이지 노출 취약점 (2) | 2024.01.01 |
12. 약한 문자열 강도 취약점 (2) | 2023.12.27 |
08. 디렉토리 인덱싱 취약점 (0) | 2023.12.26 |
03. LDAP 인젝션 (0) | 2023.12.26 |