Skip to content

Commit

Permalink
url 파라미터에 검증 미스로 인해 Open Redirect 취약점 발생 오류 수정 (kimminwyk님,211104)
Browse files Browse the repository at this point in the history
  • Loading branch information
projectSylas committed Nov 4, 2021
1 parent edb0b84 commit 73e20e7
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion lib/common.lib.php
Original file line number Diff line number Diff line change
Expand Up @@ -3300,6 +3300,18 @@ function check_url_host($url, $msg='', $return_url=G5_URL, $is_redirect=false)
$msg = 'url에 타 도메인을 지정할 수 없습니다.';

$p = @parse_url($url);

// http://gnuboard.com/bbs/member_confirm.php?url=https://google.com\@gnuboard.com:80
// 위와 같은 경우 $p['user']에 google.com\\ 값이 들어가서 google.com 로 이동 Open Redirect 취약점이 발생합니다.
// 그래서 아래와 같은 조건이라면 함수를 작동하게 하지 않습니다.
if (isset($p['user'])) {
$puser = parse_url($p['user']);
if (isset($puser['path'])) {
alert('url 정보가 올바르지 않습니다.', $return_url);
// print_r2(parse_url($p['user'])); exit;
}
}

$host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']);
$is_host_check = false;

Expand All @@ -3321,7 +3333,7 @@ function check_url_host($url, $msg='', $return_url=G5_URL, $is_redirect=false)

if(stripos($url, 'http:') !== false) {
if(!isset($p['scheme']) || !$p['scheme'] || !isset($p['host']) || !$p['host'])
alert('url 정보가 올바르지 않습니다.', $return_url);
alert('url 정보가 올바르지 않습니다..', $return_url);
}

//php 5.6.29 이하 버전에서는 parse_url 버그가 존재함
Expand Down

0 comments on commit 73e20e7

Please sign in to comment.