Open Redirect 취약점 > 그누보드5 이슈

그누보드5 이슈

좋은 댓글과 좋아요는 제작자에게 큰힘이 됩니다.

Open Redirect 취약점 정보

Open Redirect 취약점

본문

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

Vuln: Open Redirect

Version: 5.5.16

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

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

PoC

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

Impact

  • 피싱 사이트로 연계한 공격이 발생할 수 있습니다.

Secure Code (bbs/logout.php)

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

if ($url) {
    if ( substr($url, 0, 2) == '//' )
        $url = 'http:' . $url;

    **if (preg_match('#\\\0#', $url) || preg_match('/^\/{1,}\\\/', $url) || preg_match('/\\\/', $url))** {
        alert('url 에 올바르지 않은 값이 포함되어 있습니다.', G5_URL);
    }

    $p = @parse_url(urldecode(str_replace('\\', '', $url)));
    /*
        // OpenRediect 취약점관련, PHP 5.3 이하버전에서는 parse_url 버그가 있음 ( Safflower 님 제보 ) 아래 url 예제
        // http://localhost/bbs/logout.php?url=http://sir.kr%23@/
    */
    if (preg_match('/^https?:\/\//i', $url) || $p['scheme'] || $p['host']) {
        alert('url에 도메인을 지정할 수 없습니다.', G5_URL);
    }

    if($url == 'shop')
        $link = G5_SHOP_URL;
    else
        $link = $url;
} else if ($bo_table) {
    $link = get_pretty_url($bo_table);
} else {
    $link = G5_URL;
}
추천
0

댓글 1개

안녕하세요. SIR 입니다.


알려주셔서 감사합니다.


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

90레벨 이상 댓글을 남길 수 있습니다.

전체 62
그누보드5 이슈 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT