이번에는 비밀번호 찾기 페이지의 취약점에 대해서 알아보겠다.
bee-box 환경에서 실습해보자!
Level - low
이메일을 입력하여 비밀번호를 찾는 페이지인 듯 하다. low level 같은 경우는 이메일만 입력해도 바로 비밀번호를 알려주고 있다. 요즘에 이런 페이지는 존재하지 않을 것이다.
Level - medium
이메일을 입력하면 해당 이메일로 현재 비밀번호를 보내주고 있다.
Level - high
이메일을 입력하면 해당 이메일로 리셋 코드를 보내주고 있다. 이 리셋 코드를 통해 비밀번호를 변경하는 구조인 듯 하다.
소스코드 분석
ba_forgotten.php 에서 각 level 의 처리과정을 찾아보았다.
medium level 일 때는 입력한 이메일로 현재 비밀번호를 그대로 보내고 있었다.
high level 에서는 랜덤 문자열을 SHA-1 으로 해시한 값을 reset_code 로 보내주고 있다. medium level 에서 기존의 비밀번호를 알려주는 방법보다 이처럼 reset_code 를 통해 강제로 초기화를 수행하게 하는 방법이 더 안전한 인증이라고 볼 수 있다.
'웹 취약점(bee-box)' 카테고리의 다른 글
CSRF (Change Password) (0) | 2020.05.11 |
---|---|
Broken Authentication - Password Attack (0) | 2020.04.16 |
Broken Authentication - CAPTCHA Bypassing (0) | 2020.04.14 |
XSS - Stored(Change Secret) (0) | 2020.04.13 |
XSS - Stored(Blog) (0) | 2020.04.13 |