테스트 사이트 - 개발 중인 베타 버전입니다

그누보드 SQL인젝션 관련 문의 채택완료

summer1 3년 전 조회 3,610

 

안녕하세요. 홈페이지 관리 관련하여 문의가 들어왔는데 확인이 어려워 질문 남깁니다.

 

ADMIN PW입력시 SQL인젝션과 같이 논리적 취약점 이용한 로그인을 방지할 수 있게 되어 있는지 확인하려면 어떻게 해야 하나요?

댓글을 작성하려면 로그인이 필요합니다.

답변 4개

안뇽하세용

G5_HTTPS_BBS_URL."/login_check.php"; 

여기경로 타고 가보세요. 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
summer1
3년 전
경로를 어떻게 찾아가야 하는지 모르겠네요..ㅠ 도움 주셔서 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

안뇽하세용

login.skin.php 열어보세요 거기서 <form action = ""> </form>

액션부분 있을겁니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
summer1
3년 전
/www/skin/member/basic/login.skin.php 말씀하시는거 맞나요?





<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);
?>

<!-- 로그인 시작 { -->
<div id="mb_login" class="mbskin">
<div class="mbskin_box">
<h1><?php echo $g5['title'] ?></h1>
<div class="mb_log_cate">
<h2><span class="sound_only">회원</span>로그인</h2>
<a href="<?php echo G5_BBS_URL ?>/register.php" class="join">회원가입</a>
</div>
<form name="flogin" action="<?php echo $login_action_url ?>" onsubmit="return flogin_submit(this);" method="post">
<input type="hidden" name="url" value="<?php echo $login_url ?>">

<fieldset id="login_fs">
<legend>회원로그인</legend>
<label for="login_id" class="sound_only">회원아이디<strong class="sound_only"> 필수</strong></label>
<input type="text" name="mb_id" id="login_id" required class="frm_input required" size="20" maxLength="20" placeholder="아이디">
<label for="login_pw" class="sound_only">비밀번호<strong class="sound_only"> 필수</strong></label>
<input type="password" name="mb_password" id="login_pw" required class="frm_input required" size="20" maxLength="20" placeholder="비밀번호">
<button type="submit" class="btn_submit">로그인</button>

<div id="login_info">
<div class="login_if_auto chk_box">
<input type="checkbox" name="auto_login" id="login_auto_login" class="selec_chk">
<label for="login_auto_login"><span></span> 자동로그인</label>
</div>
<div class="login_if_lpl">
<a href="<?php echo G5_BBS_URL ?>/password_lost.php" target="_blank" id="login_password_lost">정보찾기</a>
</div>
</div>
</fieldset>
</form>
<?php @include_once(get_social_skin_path().'/social_login.skin.php'); // 소셜로그인 사용시 소셜로그인 버튼 ?>
</div>
</div>

<script>
jQuery(function($){
$("#login_auto_login").click(function(){
if (this.checked) {
this.checked = confirm("자동로그인을 사용하시면 다음부터 회원아이디와 비밀번호를 입력하실 필요가 없습니다.\n\n공공장소에서는 개인정보가 유출될 수 있으니 사용을 자제하여 주십시오.\n\n자동로그인을 사용하시겠습니까?");
}
});
});

function flogin_submit(f)
{
if( $( document.body ).triggerHandler( 'login_sumit', [f, 'flogin'] ) !== false ){
return true;
}
return false;
}
</script>
<!-- } 로그인 끝 -->

댓글을 작성하려면 로그인이 필요합니다.

안뇽하세용

https://sir.kr/g5_tip/15283

소스에서 이런식으로 처리가 되어있는지 확인해보세요.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

s
summer1
3년 전
어떤 소스를 확인하면 되나요? 어떤 파일의 소스를 확인해야 하는지 알려주시면 감사하겠습니다.
안뇽하세용
3년 전
제가 그누보드 소스를 안봐서 login view 단에서 form action 부분 어디로 호출하는지 확인하시고 열어보세요
s
summer1
3년 전
현직 개발자가 아니라서 질문이 중복될 수 있는 점 양해부탁드리겠습니다..


ftp에서 www/bbs/login.php의 코드를 보면 될까요?




<?php
include_once('./_common.php');

if( function_exists('social_check_login_before') ){
$social_login_html = social_check_login_before();
}

$g5['title'] = '로그인';
include_once('./_head.sub.php');

$url = isset($_GET['url']) ? strip_tags($_GET['url']) : '';

// url 체크
check_url_host($url);

// 이미 로그인 중이라면
if ($is_member) {
if ($url)
goto_url($url);
else
goto_url(G5_URL);
}

$login_url = login_url($url);
$login_action_url = G5_HTTPS_BBS_URL."/login_check.php";

// 로그인 스킨이 없는 경우 관리자 페이지 접속이 안되는 것을 막기 위하여 기본 스킨으로 대체
$login_file = $member_skin_path.'/login.skin.php';
if (!file_exists($login_file))
$member_skin_path = G5_SKIN_PATH.'/member/basic';

include_once($member_skin_path.'/login.skin.php');

run_event('member_login_tail', $login_url, $login_action_url, $member_skin_path, $url);

include_once('./_tail.sub.php');

댓글을 작성하려면 로그인이 필요합니다.

안뇽하세용

로그인할때 input 값을 어떻게 받아서 처리하는지 확인해보세요 소스에서 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
summer1
3년 전
확인하는 방법을 자세히 알려주실 수 있나요?

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인