미채택 완료

그누보드 SQL인젝션 관련 문의

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

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

|

답변 4개 / 댓글 6개

G5_HTTPS_BBS_URL."/login_check.php"; 

여기경로 타고 가보세요. 

답변에 대한 댓글 1개

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

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

액션부분 있을겁니다.

답변에 대한 댓글 1개

/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개

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


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개

확인하는 방법을 자세히 알려주실 수 있나요?

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