로그인 후, 정보 변경 인증 과정에서요.. 정보
로그인 후, 정보 변경 인증 과정에서요..첨부파일
본문
안녕하세요. 정보보안을 공부하는 학생입니다.
Freeware인 Gnuboard를 통해 Owasp top 10을 공부 중이였는데, 아직 실력이 미흡해서 궁금증하나가 생겼습니다.
User 로그인을 한 후에 정보변경을 할 때 재 인증을 합니다. CSRF 보안 방안에 재 인증을 통해 보안한다고 알고 있습니다. 그런데 재 인증에서 Paros를 통해 & 값을 Password에 입력해주니 재 인증에 임의의 Password로 인증이 되는 것을 확인하였습니다.
password=wnsod 을 Paros로 password=&wnsod 으로 임의로 바꿔주니 인증이 되었습니다.
이 경우, password에 빈 값이 입력되었다고해서 오류가 떠야 될텐데 인증이 가능하였습니다.
스크린샷을 통해 pdf File로 첨부하였습니다. 정확하게 표현을 어떻게 해야 될지 몰라서요.
여기서 궁금한게 왜 이런 현상이 생기는지 궁금합니다.
프로그램 상에서 잘못 되었는지, 인증과정에서 잘못 되었는지, SQL에서 잘못 되었는지..
가르쳐주시면 감사하겠습니다..
Freeware인 Gnuboard를 통해 Owasp top 10을 공부 중이였는데, 아직 실력이 미흡해서 궁금증하나가 생겼습니다.
User 로그인을 한 후에 정보변경을 할 때 재 인증을 합니다. CSRF 보안 방안에 재 인증을 통해 보안한다고 알고 있습니다. 그런데 재 인증에서 Paros를 통해 & 값을 Password에 입력해주니 재 인증에 임의의 Password로 인증이 되는 것을 확인하였습니다.
password=wnsod 을 Paros로 password=&wnsod 으로 임의로 바꿔주니 인증이 되었습니다.
이 경우, password에 빈 값이 입력되었다고해서 오류가 떠야 될텐데 인증이 가능하였습니다.
스크린샷을 통해 pdf File로 첨부하였습니다. 정확하게 표현을 어떻게 해야 될지 몰라서요.
여기서 궁금한게 왜 이런 현상이 생기는지 궁금합니다.
프로그램 상에서 잘못 되었는지, 인증과정에서 잘못 되었는지, SQL에서 잘못 되었는지..
가르쳐주시면 감사하겠습니다..
댓글 전체

첫번째 패스워드 입력창에서 통과하게되면
수정페이지에서 데이터 값을 업데이트 할때 기존 패스워드를 체킹하지 않는것 때문에 발생하는 오류 같아 보입니다.
이건 보드 패치가 필요할꺼 같네요
관리자님께 메시지 날려보내드려야 겠습니다.
잘 배우고 갑니다.
좋은정보 감사합니다.
수정페이지에서 데이터 값을 업데이트 할때 기존 패스워드를 체킹하지 않는것 때문에 발생하는 오류 같아 보입니다.
이건 보드 패치가 필요할꺼 같네요
관리자님께 메시지 날려보내드려야 겠습니다.
잘 배우고 갑니다.
좋은정보 감사합니다.

paros 이용으로 post 전송값이 get으로 바뀌어 전송된 것 같습니다.
확인해보니 post로 전송된 열쇠글에 대해서만 체크를 하고
존재하지 않을 시 그냥 넘기고있네요.
확인해보니 post로 전송된 열쇠글에 대해서만 체크를 하고
존재하지 않을 시 그냥 넘기고있네요.
register_form.php 93행( 4.35.02 utf 버전 기준)에 아래처럼 추가하세요
if문 블록 다음 행에 추가
if( !$mb_password) alert('패스워드가 틀립니다.');
또는
else if( !$mb_password) alert('패스워드가 틀립니다.');
이유는 이런 것이겠습니다
브라우저에서 입력한 것을 paros가 중간에서 가로챕니다
이 값을 변경해서 보냅니다
(이때 브라우저는 해당 페이지로 이동하지 못하고 잠겨있는 상태죠)
그런데 인증 처리 부분에서 값이 없는 경우의 처리방법이 빠져있습니다
그러다보니 빈값을 넘기면 일사천리로 통과되어버립니다
if문 블록 다음 행에 추가
if( !$mb_password) alert('패스워드가 틀립니다.');
또는
else if( !$mb_password) alert('패스워드가 틀립니다.');
이유는 이런 것이겠습니다
브라우저에서 입력한 것을 paros가 중간에서 가로챕니다
이 값을 변경해서 보냅니다
(이때 브라우저는 해당 페이지로 이동하지 못하고 잠겨있는 상태죠)
그런데 인증 처리 부분에서 값이 없는 경우의 처리방법이 빠져있습니다
그러다보니 빈값을 넘기면 일사천리로 통과되어버립니다