gnuboard / gnuboard5

그누보드5 (영카트 포함) 공개형 Git
Other
308 stars 248 forks source link

login, Open Redirect 취약점 #320

Open arrester opened 4 months ago

arrester commented 4 months ago

Security 탭에서 제보가 불가능하여 Issues를 통해 제보드립니다.

추가로 발견한 Open Redirect 취약점 내용이며 이전에 제보한 곳과 path가 다른 곳에서 발생합니다.

Vuln: Open Redirect

Version: 5.5.16

url 파라미터에서 역슬래시에 대한 필터링이 존재하지 않아 Open Redirect 취약점이 발생합니다.

아래는 공격 증명 코드(PoC)이며 원하는 도메인으로 지정한 상태로 테스트할 수 있습니다. PoC

https://demo.sir.kr/gnuboard5/bbs/login.php?url=\google.com
https://demo.sir.kr/gnuboard5/bbs/login.php?url=\github.com

Impact

Secure Code (bbs/login.php)

아래는 \ 역슬래시를 탐지할 수 있는 예시 시큐어코드입니다.

...

$url = isset($_GET['url']) ? strip_tags($_GET['url']) : '';
$od_id = isset($_POST['od_id']) ? safe_replace_regex($_POST['od_id'], 'od_id') : '';

// url 체크
check_url_host($url);

// 역슬래시 필터링 추가
if (preg_match('/\\\/', $url)) {
    alert('url에 올바르지 않은 값이 포함되어 있습니다.', G5_URL);
}

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

...
thisgun commented 4 months ago

안녕하세요. SIR 입니다.

알려주셔서 감사합니다.

해당 내용을 수정하겠습니다.