From 4ad2f60c348fb3b7c3fb0d119274b70c9d48d96f Mon Sep 17 00:00:00 2001 From: kagla Date: Mon, 7 Mar 2022 16:32:35 +0900 Subject: [PATCH 1/7] =?UTF-8?q?[=EB=B3=B4=EC=95=88=ED=8C=A8=EC=B9=98]=20KV?= =?UTF-8?q?E-2021-1987=5F=EA=B7=B8=EB=88=84=EB=B3=B4=EB=93=9C(=EC=98=81?= =?UTF-8?q?=EC=B9=B4=ED=8A=B8)preauth=20SQL=20Injection=20=EC=B7=A8?= =?UTF-8?q?=EC=95=BD=EC=A0=90=20=ED=95=B4=EA=B2=B0,=20shop/event.php=20?= =?UTF-8?q?=EB=A5=BC=20=EA=B1=B0=EC=B3=90=EC=84=9C=20=EC=A0=91=EA=B7=BC?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mobile/shop/event.php | 1 + 1 file changed, 1 insertion(+) diff --git a/mobile/shop/event.php b/mobile/shop/event.php index 7090d2d16..d6f45ffdc 100644 --- a/mobile/shop/event.php +++ b/mobile/shop/event.php @@ -1,4 +1,5 @@ Date: Tue, 22 Mar 2022 12:52:36 +0900 Subject: [PATCH 2/7] =?UTF-8?q?=EB=AA=A8=EB=B0=94=EC=9D=BC=ED=8E=98?= =?UTF-8?q?=EC=9D=B4=EC=A7=80=EC=97=90=EC=84=9C=EC=9D=98=20=EC=A7=81?= =?UTF-8?q?=EC=A0=91=20=EC=A0=91=EA=B7=BC=EC=9D=84=20=EB=A7=89=EC=95=84=20?= =?UTF-8?q?KVE-2021-1888=5FReflected=20XSS=20=EC=B7=A8=EC=95=BD=EC=A0=90?= =?UTF-8?q?=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mobile/shop/event.php | 1 + shop/_common.php | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/mobile/shop/event.php b/mobile/shop/event.php index d6f45ffdc..b27763d19 100644 --- a/mobile/shop/event.php +++ b/mobile/shop/event.php @@ -1,6 +1,7 @@ 쇼핑몰 설치 후 이용해 주십시오.

'); -define('_SHOP_', true); \ No newline at end of file +define('_SHOP_', true); +define('_SHOP_COMMON_', true); // 모바일 페이지의 직접 접근을 막는 경우에 사용 +?> \ No newline at end of file From 38e732e71e008924ffc6235435fc456c58a9dd45 Mon Sep 17 00:00:00 2001 From: kagla Date: Wed, 6 Apr 2022 14:08:20 +0900 Subject: [PATCH 3/7] =?UTF-8?q?KVE-2021-1277=20Open=20Redirect=20=EC=B7=A8?= =?UTF-8?q?=EC=95=BD=EC=A0=90=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/common.lib.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/common.lib.php b/lib/common.lib.php index b8315e2ca..6a6a6980f 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -3337,6 +3337,11 @@ function check_url_host($url, $msg='', $return_url=G5_URL, $is_redirect=false) if(!$msg) $msg = 'url에 타 도메인을 지정할 수 없습니다.'; + // KVE-2021-1277 Open Redirect 취약점 해결 + if (preg_match('#\\\0#', $url)) { + alert('url 에 올바르지 않은 값이 포함되어 있습니다.'); + } + $url = urldecode($url); $p = @parse_url(trim($url)); $host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']); From 9ac9e01a51460c5cf25306f62cc1eaadb6fc9d07 Mon Sep 17 00:00:00 2001 From: kagla Date: Thu, 7 Apr 2022 15:43:33 +0900 Subject: [PATCH 4/7] =?UTF-8?q?[KVE-2022-0184]=20XSS=20=EB=B0=8F=20SQLInje?= =?UTF-8?q?ction=20=EC=B7=A8=EC=95=BD=EC=A0=90=20=ED=95=B4=EA=B2=B0?= =?UTF-8?q?=EC=9D=84=20=EC=9C=84=ED=95=B4=20=EC=82=AC=EC=9A=A9=ED=95=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EA=B3=A0=20=EC=9E=88=EB=8D=98=20"?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EC=A4=91=EB=B3=B5=EA=B2=80=EC=82=AC"=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/shop_admin/categoryform.php | 2 -- adm/shop_admin/codedupcheck.php | 24 ------------------------ adm/shop_admin/configform.php | 7 ------- adm/shop_admin/itemform.php | 33 --------------------------------- 4 files changed, 66 deletions(-) delete mode 100644 adm/shop_admin/codedupcheck.php diff --git a/adm/shop_admin/categoryform.php b/adm/shop_admin/categoryform.php index 8a133d515..1950ec2c3 100644 --- a/adm/shop_admin/categoryform.php +++ b/adm/shop_admin/categoryform.php @@ -157,7 +157,6 @@ else {
- @@ -184,7 +183,6 @@ else { - diff --git a/adm/shop_admin/codedupcheck.php b/adm/shop_admin/codedupcheck.php deleted file mode 100644 index 3436c7797..000000000 --- a/adm/shop_admin/codedupcheck.php +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - > 사용 - - diff --git a/adm/shop_admin/itemform.php b/adm/shop_admin/itemform.php index eea31a8cf..9afd81fe4 100644 --- a/adm/shop_admin/itemform.php +++ b/adm/shop_admin/itemform.php @@ -210,7 +210,6 @@ if(!sql_query(" select it_skin from {$g5['g5_shop_item_table']} limit 1", false) - @@ -333,11 +332,8 @@ if(!sql_query(" select it_skin from {$g5['g5_shop_item_table']} limit 1", false) 상품코드 - - 직접 상품코드를 입력할 수도 있습니다.\n상품코드는 영문자, 숫자, - 만 입력 가능합니다."); ?> - @@ -1782,35 +1778,6 @@ $(function() { }); -function codedupcheck(id) -{ - if (!id) { - alert('상품코드를 입력하십시오.'); - f.it_id.focus(); - return; - } - - var it_id = id.replace(/[A-Za-z0-9\-_]/g, ""); - if(it_id.length > 0) { - alert("상품코드는 영문자, 숫자, -, _ 만 사용할 수 있습니다."); - return false; - } - - $.post( - "./codedupcheck.php", - { it_id: id }, - function(data) { - if(data.name) { - alert("코드 '"+data.code+"' 는 '".data.name+"' (으)로 이미 등록되어 있으므로\n\n사용하실 수 없습니다."); - return false; - } else { - alert("'"+data.code+"' 은(는) 등록된 코드가 없으므로 사용하실 수 있습니다."); - document.fitemform.codedup.value = ''; - } - }, "json" - ); -} - function fitemformcheck(f) { if (!f.ca_id.value) { From de72f422169b3cc26049ea887590eaae17654a4b Mon Sep 17 00:00:00 2001 From: kagla Date: Thu, 7 Apr 2022 15:49:13 +0900 Subject: [PATCH 5/7] =?UTF-8?q?=EB=B2=84=EC=A0=84=205.5.5=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- version.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.php b/version.php index 3f7cf1dea..419de91e3 100644 --- a/version.php +++ b/version.php @@ -2,7 +2,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 define('G5_VERSION', '그누보드5'); -define('G5_GNUBOARD_VER', '5.5.4'); +define('G5_GNUBOARD_VER', '5.5.5'); // 그누보드5.4.5.5 버전과 영카트5.4.5.5.1 버전을 합쳐서 그누보드5.4.6 버전에서 시작함 (kagla-210617) // G5_YOUNGCART_VER 이 상수를 사용하는 곳이 있으므로 주석 처리 해제함 // 그누보드5.4.6 이상 버전 부터는 영카트를 그누보드에 포함하여 배포하므로 영카트5의 버전은 의미가 없습니다. From 11718eb4c02ffdca5393bedc0300a75e4e7b19f2 Mon Sep 17 00:00:00 2001 From: projectSylas Date: Mon, 18 Apr 2022 05:42:03 +0000 Subject: [PATCH 6/7] =?UTF-8?q?[G5-80]=20=EB=B3=B8=EC=9D=B8=EC=9D=B8?= =?UTF-8?q?=EC=A6=9D=20=EB=B9=84=EB=B0=80=EB=B2=88=ED=98=B8=20=EC=B0=BE?= =?UTF-8?q?=EA=B8=B0=20=ED=9B=84=20=EB=B9=84=EB=B0=80=EB=B2=88=ED=98=B8=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD=20=EA=B4=80=EB=A0=A8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bbs/password_reset_update.php | 32 +++++++++++-------- .../skin/member/basic/password_reset.skin.php | 3 +- plugin/inicert/ini_find_result.php | 16 ++++++++++ plugin/kcpcert/find_kcpcert_result.php | 18 +++++++++++ plugin/lgxpay/find_AuthOnlyRes.php | 19 ++++++++++- plugin/okname/find_hpcert2.php | 18 +++++++++++ plugin/okname/find_ipin2.php | 19 +++++++++++ skin/member/basic/password_reset.skin.php | 3 +- .../skin/member/basic/password_reset.skin.php | 3 +- .../skin/member/basic/password_reset.skin.php | 3 +- 10 files changed, 115 insertions(+), 19 deletions(-) diff --git a/bbs/password_reset_update.php b/bbs/password_reset_update.php index f9aafebc1..01ecfb08e 100644 --- a/bbs/password_reset_update.php +++ b/bbs/password_reset_update.php @@ -1,27 +1,31 @@

새로운 비밀번호를 입력해주세요.

- +
+ 회원 아이디 : diff --git a/plugin/inicert/ini_find_result.php b/plugin/inicert/ini_find_result.php index c47b7a258..258e615ad 100644 --- a/plugin/inicert/ini_find_result.php +++ b/plugin/inicert/ini_find_result.php @@ -50,6 +50,22 @@ if ($_POST["resultCode"] === "0000") { alert_close("인증하신 정보로 가입된 회원정보가 없습니다."); exit; } + + $md5_cert_no = md5($cert_no); + $hash_data = md5($user_name.$cert_type.$birth_day.$phone_no.$md5_cert_no); + + // 성인인증결과 + $adult_day = date("Ymd", strtotime("-19 years", G5_SERVER_TIME)); + $adult = ((int)$birth_day <= (int)$adult_day) ? 1 : 0; + + set_session("ss_cert_type", $cert_type); + set_session("ss_cert_no", $md5_cert_no); + set_session("ss_cert_hash", $hash_data); + set_session("ss_cert_adult", $adult); + set_session("ss_cert_birth", $birth_day); + //set_session("ss_cert_sex", ($sex_code=="01"?"M":"F")); // 이니시스 간편인증은 성별정보 리턴 없음 + set_session('ss_cert_dupinfo', $mb_dupinfo); + set_session('ss_cert_mb_id', $row['mb_id']); } else { // 인증실패 curl의 인증실패 체크 alert_close('코드 : '.$res_data['resultCode'].' '.urldecode($res_data['resultMsg'])); diff --git a/plugin/kcpcert/find_kcpcert_result.php b/plugin/kcpcert/find_kcpcert_result.php index 328f8cee0..a882cbb82 100644 --- a/plugin/kcpcert/find_kcpcert_result.php +++ b/plugin/kcpcert/find_kcpcert_result.php @@ -159,7 +159,25 @@ if( $cert_enc_use == "Y" ) alert_close("인증하신 정보로 가입된 회원정보가 없습니다."); exit; } + }else{ + $mb_dupinfo = $md5_ci; } + + $md5_cert_no = md5($cert_no); + $hash_data = md5($user_name.$cert_type.$birth_day.$phone_no.$md5_cert_no); + + // 성인인증결과 + $adult_day = date("Ymd", strtotime("-19 years", G5_SERVER_TIME)); + $adult = ((int)$birth_day <= (int)$adult_day) ? 1 : 0; + + set_session("ss_cert_type", $cert_type); + set_session("ss_cert_no", $md5_cert_no); + set_session("ss_cert_hash", $hash_data); + set_session("ss_cert_adult", $adult); + set_session("ss_cert_birth", $birth_day); + set_session("ss_cert_sex", ($sex_code=="01"?"M":"F")); // 이니시스 간편인증은 성별정보 리턴 없음 + set_session('ss_cert_dupinfo', $mb_dupinfo); + set_session('ss_cert_mb_id', $row['mb_id']); } else if( $res_cd != "0000" ) { diff --git a/plugin/lgxpay/find_AuthOnlyRes.php b/plugin/lgxpay/find_AuthOnlyRes.php index a3140ef55..e1c0e958e 100644 --- a/plugin/lgxpay/find_AuthOnlyRes.php +++ b/plugin/lgxpay/find_AuthOnlyRes.php @@ -136,8 +136,25 @@ if ($xpay->TX()) { alert_close("인증하신 정보로 가입된 회원정보가 없습니다."); exit; } + }else{ + $mb_dupinfo = $md5_ci; } - + + $md5_cert_no = md5($cert_no); + $hash_data = md5($user_name.$cert_type.$birth_day.$phone_no.$md5_cert_no); + + // 성인인증결과 + $adult_day = date("Ymd", strtotime("-19 years", G5_SERVER_TIME)); + $adult = ((int)$birth_day <= (int)$adult_day) ? 1 : 0; + + set_session("ss_cert_type", $cert_type); + set_session("ss_cert_no", $md5_cert_no); + set_session("ss_cert_hash", $hash_data); + set_session("ss_cert_adult", $adult); + set_session("ss_cert_birth", $birth_day); + set_session("ss_cert_sex", $mb_sex); // 이니시스 간편인증은 성별정보 리턴 없음 + set_session('ss_cert_dupinfo', $mb_dupinfo); + set_session('ss_cert_mb_id', $row['mb_id']); } else { //인증요청 결과 실패 DB처리 //echo "인증요청 결과 실패 DB처리하시기 바랍니다.
"; diff --git a/plugin/okname/find_hpcert2.php b/plugin/okname/find_hpcert2.php index de14f7567..0e0bc5fa3 100644 --- a/plugin/okname/find_hpcert2.php +++ b/plugin/okname/find_hpcert2.php @@ -121,8 +121,26 @@ if (empty($row['mb_id'])) { // ci로 등록된 계정이 없다면 alert_close("인증하신 정보로 가입된 회원정보가 없습니다."); exit; } +}else{ + $mb_dupinfo = $md5_ci; } +$md5_cert_no = md5($cert_no); +$hash_data = md5($user_name.$cert_type.$birth_day.$phone_no.$md5_cert_no); + +// 성인인증결과 +$adult_day = date("Ymd", strtotime("-19 years", G5_SERVER_TIME)); +$adult = ((int)$birth_day <= (int)$adult_day) ? 1 : 0; + +set_session("ss_cert_type", $cert_type); +set_session("ss_cert_no", $md5_cert_no); +set_session("ss_cert_hash", $hash_data); +set_session("ss_cert_adult", $adult); +set_session("ss_cert_birth", $birth_day); +set_session('ss_cert_sex', ($field[9] == 1 ? 'M' : 'F')); +set_session('ss_cert_dupinfo', $mb_dupinfo); +set_session('ss_cert_mb_id', $row['mb_id']); + $g5['title'] = 'KCB 휴대폰 본인확인'; include_once(G5_PATH.'/head.sub.php'); ?> diff --git a/plugin/okname/find_ipin2.php b/plugin/okname/find_ipin2.php index af767aac3..f617791c0 100644 --- a/plugin/okname/find_ipin2.php +++ b/plugin/okname/find_ipin2.php @@ -95,7 +95,26 @@ if (empty($row['mb_id'])) { // ci로 등록된 계정이 없다면 alert_close("인증하신 정보로 가입된 회원정보가 없습니다."); exit; } +}else{ + $mb_dupinfo = $md5_ci; } + +$md5_cert_no = md5($cert_no); +$hash_data = md5($user_name.$cert_type.$birth_day.$phone_no.$md5_cert_no); + +// 성인인증결과 +$adult_day = date("Ymd", strtotime("-19 years", G5_SERVER_TIME)); +$adult = ((int)$birth_day <= (int)$adult_day) ? 1 : 0; + +set_session("ss_cert_type", $cert_type); +set_session("ss_cert_no", $md5_cert_no); +set_session("ss_cert_hash", $hash_data); +set_session("ss_cert_adult", $adult); +set_session("ss_cert_birth", $birth_day); +set_session('ss_cert_sex', ($field[9] == 1 ? 'M' : 'F')); +set_session('ss_cert_dupinfo', $mb_dupinfo); +set_session('ss_cert_mb_id', $row['mb_id']); + $g5['title'] = 'KCB 아이핀 본인확인'; include_once(G5_PATH.'/head.sub.php'); ?> diff --git a/skin/member/basic/password_reset.skin.php b/skin/member/basic/password_reset.skin.php index ecab6a228..f7dfafdaa 100644 --- a/skin/member/basic/password_reset.skin.php +++ b/skin/member/basic/password_reset.skin.php @@ -12,7 +12,8 @@ add_stylesheet('

새로운 비밀번호를 입력해주세요.

- +
+ 회원 아이디 : diff --git a/theme/basic/mobile/skin/member/basic/password_reset.skin.php b/theme/basic/mobile/skin/member/basic/password_reset.skin.php index ecab6a228..f7dfafdaa 100644 --- a/theme/basic/mobile/skin/member/basic/password_reset.skin.php +++ b/theme/basic/mobile/skin/member/basic/password_reset.skin.php @@ -12,7 +12,8 @@ add_stylesheet('

새로운 비밀번호를 입력해주세요.

- +
+ 회원 아이디 : diff --git a/theme/basic/skin/member/basic/password_reset.skin.php b/theme/basic/skin/member/basic/password_reset.skin.php index ecab6a228..f7dfafdaa 100644 --- a/theme/basic/skin/member/basic/password_reset.skin.php +++ b/theme/basic/skin/member/basic/password_reset.skin.php @@ -12,7 +12,8 @@ add_stylesheet('

새로운 비밀번호를 입력해주세요.

- +
+ 회원 아이디 : From 97baa9d0db2f95e8e73dea68d359da48aaf25b6d Mon Sep 17 00:00:00 2001 From: kagla Date: Mon, 18 Apr 2022 16:52:22 +0900 Subject: [PATCH 7/7] =?UTF-8?q?=EB=B2=84=EC=A0=84=205.5.6=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- version.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/version.php b/version.php index 419de91e3..edf655f16 100644 --- a/version.php +++ b/version.php @@ -2,7 +2,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 define('G5_VERSION', '그누보드5'); -define('G5_GNUBOARD_VER', '5.5.5'); +define('G5_GNUBOARD_VER', '5.5.6'); // 그누보드5.4.5.5 버전과 영카트5.4.5.5.1 버전을 합쳐서 그누보드5.4.6 버전에서 시작함 (kagla-210617) // G5_YOUNGCART_VER 이 상수를 사용하는 곳이 있으므로 주석 처리 해제함 // 그누보드5.4.6 이상 버전 부터는 영카트를 그누보드에 포함하여 배포하므로 영카트5의 버전은 의미가 없습니다.