회원로그인시 비밀번호를 아무렇게나 입력해도 로그인이 됩니다.
본문
로그인시 아이디입력하고 비밀번호를 아무렇게나 입력해도 로그인이 됩니다.
관리자도 아이디 입력하고 비밀번호 아무렇게나 입력해도 로그인이 됩니다.
이게 도대체 무슨 일일까요? 해킹당한건가요???
어떻게 조치를 해야 하나요??
아..난감하네요..
답변 3
원인을 먼저 찾아야겠지요.
로그인 처리 페이지는 /bbs/login_check.php 입니다.
패스워드가 일치하는 지 여부를 체크하는 부분은 다음의 코드 부분입니다.
if (!$is_social_password_check && (!$mb['mb_id'] || !check_password($mb_password, $mb['mb_password'])) ) {
alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');
}
브라우저에서 입력하는 비밀번호는 제대로 넘어왔는지, DB 에 암호화되어 저장된 비밀번호 체크는 정상적으로 처리가 되는지 등을 살펴야 될 것 같습니다.
!-->카페24에서 호스팅받고 있는데 아래와 같이 답변이 왔습니다.
어떤 조치를 취해야 하는건가요?
----------------------------------------------------------------------------------------------------
실제 로그인 암호체크는 bbs/login_check.php에서 처리하게되는데,
패스워드 입력필드에 대한 데이터 검증하는 펑션을 실행하지 않습니다.
function check_password($pass, $hash)
{
$password = get_encrypt_string($pass);
return ($password === $hash);
}
위 펑션은 lib/common.lib.php 에 정의되어있고, 그누보드5 정상 소스라면 아래 조건으로
mb_password 필드값 ( 암호를 받는 폼필드네임 ) 을 check_password로 검수해야하나,
이를 검증하지 않기때문에 아무 패스워드나 로그인 처리가 되는것으로 보입니다.
if (!$is_social_password_check && (!$mb['mb_id'] || !check_password($mb_password, $mb['mb_password'])) ) {
alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\n비밀번호는 대소문자를 구분합니다.');
}
즉 bbs/login_check.php 파일에서 check_password() 를 실행하지 않아 로그인검증이 되지 않는것으로 보이오니,
개발자 단에서 소스부분을 다시 검토바랍니다.
네..답변 감사드립니다..의뢰게시판에 올려볼께요