강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

웹브라우저 URL 스푸핑 취약점 정리

작성자 정보

  • 웹관리자 작성
  • 작성일

컨텐츠 정보

본문

자료 : 한국정보보호진흥원(KISA)

 

1. 서론
URL(Uniform Resource Location)이란 인터넷 상의 특정 정보를 지정하는데 사용하는 주소 표시
형식이다.(예, http://www.krcert.or.kr/index.html) Internet Explorer(이하 IE), Firefox 등 웹브라우
저를 사용하여 정보를 검색할 때 이들 소프트웨어는 인터넷 사용자가 어떤 사이트를 방문하고 있
는지 주소창에 URL을 표시함으로써 알려 준다. 그러므로 웹브라우저의 주소창은 항상 현재 방문하
고 있는 사이트의 주소를 표시하고 있어야 하지만, 소프트웨어의 버그에 의하여 이 부분이 다른 주
소로 표시되도록 할 수 있으며, 이를 URL 스푸핑(URL Spoofing, URL 변조) 공격이라고 한다.
이와 같은 URL 스푸핑 공격은 그 자체로서는 시스템의 운영이나 동작에 영향을 미치지 않는다.
그러나 최근 빈발하고 있는 피싱(Phishing)과 결합하였을 경우에는 공격 대상자가 자신이 속고 있
다는 것을 알아채기 힘들기 때문에 자신도 모르는 사이에 피해자가 될 수 있다.실제로 ”인터넷 침
해사고 동향 및 분석 월보“ 중에서 ”피싱 경유지 신고 통계 분석” 기사를 보면 피싱기법에 SW보
안오류가 이용되는 것을 확인할 수 있다.
인터넷침해사고대응지원센터에서는 2004년 10월 KrCERT 홈페이지의 기술문서를 통해 웹브라우
저의 각종 스푸핑 취약점을 정리하였다[7]. 기술문서에서 특수문자/스크립트/HTML 태그/다이얼로
그 박스 등을 이용한 URL 스푸핑 기법과 스푸핑 기법을 이용한 피싱 공격방법을 설명하고 대응방
법을 제시하였다.
본고에서는 [표 1]과 같이 2004년 11월 이후 공개된 IE, Firefox 스푸핑 주요 취약점을 정리하고
테스트가 가능한 1, 2, 3, 5, 6, 9번 취약점에 대해 상세히 설명한다.


구분 취약점 명
영향받는
버전
해결방안 발표시기
취약점
식별
상세
설명
1 공통
여러 웹브라우저들의 프롬프트
다이얼로그박스 출처 스푸핑
취약점
FireFox
1.04 이전
IE 6.x
벤더사
패치
발표(IE는
미발표)
2005.06.21
SA15489
SA15491
본고
2장
2
IE
마우스 이벤트를 이용한 IE
상태표시줄의 URL 변조 취약점
IE 6.x 미발표 2005.02.14 BID12541 3장
3
IE 팝업창 타이틀바 스푸핑
취약점
IE 6.x 미발표 2005.02.21 BID12602 4장
9
IE의 Window 로딩 시 경쟁조건을
이용한 주소표시줄 스푸핑
취약점
IE 6.x 미발표 2005.04.04 SA19521 7장
4
Firefox
Firefox 다운로드 다이얼로그
소스 스푸핑 취약점
Firefox 1.0
벤더사
패치 발표
2005.01.04 BID12153
5
Firefox 모달 다이얼로그 스푸핑
취약점
Firefox 1.0
벤더사
패치 발표
2005.01.10 BID12234 5장
6
IE를 제외한 여러
웹브라우저들의 IDN 처리 관련
사이트 속성 스푸핑 취약점
Firefox 1.0
이전
벤더사
패치 발표
2005.02.07
BID12461
SA14163
6장
7
Firefox 중첩 앵커 태그
상태표시줄 스푸핑 취약점
Firefox
1.0.1 이전
벤더사
패치 발표
2005.03.14 BID12798
8
Firefox Chrome 윈도우 스푸핑
취약점
Firefox
1.0.6 이전
벤더사
패치 발표
2005.09.23 BID14919
[표 1] 2004년 11월 이후 공개된 IE, Firefox URL 스푸핑 취약점 중
* 시큐리티포커스 : BIDxxxxxx, 시큐니아 : SAxxxxx, Microsoft 보안공지 : MSxx-xxx
먼저 (그림 1)에서 앞으로 설명에 사용될 웹브라우저 각 부분의 명칭을 확인할 수 있다.
KrCERT-AR-2005-108 http://www.krcert.or.kr
웹브라우저 URL 스푸핑 취약점 정리 cert@certcc.or.kr
__________________________________________________________________________________________
__________________________________________________________________________________________
- 2 -
(그림 6) 스푸핑 설명을 위한 웹브라우저 각 부분의 명칭
2. 여러 웹브라우저들의 프롬프트 다이얼로그박스 출처 스푸핑 취약점[4]
웹브라우저에서는 프롬프트 다이얼로그박스(prompt dialogbox) 등을 이용하여 사용자에게 간단
한 입력을 받아 처리할 수 있다.
(그림 7) 프롬프트 다이얼로그박스로 사용자
이름을 입력받음
(그림 8) 입력받은 이름으로 환영메시지를
보여줌
자바스크립트를 이용한 다이얼로그박스에서는 그 출처를 표시하지 않는다. 따라서 웹브라우저에
KrCERT-AR-2005-108 http://www.krcert.or.kr
웹브라우저 URL 스푸핑 취약점 정리 cert@certcc.or.kr
__________________________________________________________________________________________
__________________________________________________________________________________________
- 3 -
신뢰할 수 있는 웹사이트가 나타나있고, 그 위에 프롬프트 다이얼로그박스가 뜬다면, 사용자는 이
다이얼로그박스의 출처를 오해할 수 있다.
공격시나리오에 따라 이를 설명하면 다음과 같다.
(1) 사용자가 악의적인 웹사이트 www.malicioussite.com을 방문한다.
(그림 9) 사용자가 악의적인 웹사이트 www.malicioussite.com을 방문
(2) 사용자가 이 악의적인 웹사이트 www.malicioussite.com에서 신뢰할 수 있는 웹사이트
www.google.com의 링크를 클릭한다.
(그림 10) 악의적인 웹사이트에서 신뢰할 수 있는 웹사이트의 링크를 클릭
KrCERT-AR-2005-108 http://www.krcert.or.kr
웹브라우저 URL 스푸핑 취약점 정리 cert@certcc.or.kr
__________________________________________________________________________________________
__________________________________________________________________________________________
- 4 -
(3) 사용자가 방문한 악의적인 웹사이트 www.malicioussite.com는 먼저 신뢰할 수 있는 웹사이트
www.google.com를 열고, 그 위에 프롬프트 다이얼로그박스를 띄운다. 이 프롬프트에는 “Google이
보안 서베이를 테스트하고 있습니다. 패스워드를 입력해 주세요” 라는 문구가 보인다. 사용자들은
이 프롬프트 다이얼로그박스가 마치 www.google.com에서 띄운 것이라고 오해하고 개인정보를 입
력할 수 있다.
(그림 11) 신뢰할 수 있는 웹사이트 위에 개인정보를 요구하는 프롬프트를 띄움
다음은 공격에 사용된 “dialog spoof.html” 소스코드 중 일부이다.
<a href="http://www.google.com/" ...생략...> Test Now - Left Click On This Link</a>①
...생략...
window.open('./origin_spoof.html', '_blank', ...생략... );②
...생략...
prompt('Test security survey from Google. Please enter a test "password" string:', '');③
...생략...
사용자가 링크를 클릭하였을 때, www.google.com으로 연결되고(①), 동시에 새 윈도우에
origin_spoof.html을 연다. 새 윈도우의 크기와 위치를 조절함으로써 origin_spoof.html이 프롬프로
KrCERT-AR-2005-108 http://www.krcert.or.kr
웹브라우저 URL 스푸핑 취약점 정리 cert@certcc.or.kr
__________________________________________________________________________________________
__________________________________________________________________________________________
- 5 -
다이얼로그박스에 의해 가려지게 만든다(②). origin_spoof.html에서는 prompt() 함수에서 마치 신
뢰할 수 있는 사이트에서 띄운 프롬프트인양 문구를 적고, 사용자의 개인정보를 요구한다.(③)
3. 마우스 이벤트를 이용한 IE 상태표시줄의 URL 변조 취약점[1]
이 취약점은 특정 마우스 이벤트를 포함하는 HREF 태그를 이용하여 IE 상태표시줄의 URL을 변
조시킬 수 있는 취약점이다.
공격시나리오에 따라 이를 설명하면 다음과 같다.
(1) 사용자가 URL 링크에 마우스를 대면 IE 상태표시줄에 신뢰할 수 있는 웹사이트
www.trustsite.com이 나타난다. 따라서 사용자는 해당 URL을 클릭하면 www.trustsite.com으로 연
결된다고 속을 수 있다.
(그림 12) URL 링크에 마우스를 대면 IE 상태표시줄에 신뢰할 수 있는 웹사이트 URL이
표시됨
(그림 13) 이 링크를 오른쪽 마우스
버튼으로 클릭하고 속성을 선택하였
을 때 등록정보 창이 나타난다. 등록
정보 창의 주소(URL)도
http://www.trustsite.com으로 나타날
수 있도록 조작됨
(2) 그러나 해당 링크를 클릭하면 악의적인 웹사이트 www.malicioussite.com으로 연결된다.
KrCERT-AR-2005-108 http://www.krcert.or.kr
웹브라우저 URL 스푸핑 취약점 정리 cert@certcc.or.kr
__________________________________________________________________________________________
__________________________________________________________________________________________
- 6 -
(그림 14) URL을 클릭하면 실제로는 악의적인 웹사이트로 연결됨
다음은 공격에 사용된 “IE 마우스이벤트 상태표시줄 변조.html” 소스코드 중 일부이다.
...생략...
<a href='vbscript:location.assign("http://www.malicioussite.com")'
...생략...window.status='http://www.trustsite.com'} ②
...생략...chglink.href='http://www.trustsite.com'}"> ③
신뢰할 수 있는 사이트 ~~에 접속하세요</a> ...생략...
이 링크의 실제 사이트는 http://www.malicioussite.com 이다(①). 마우스를 가져가면 상태표시
줄에 http://www.trustsite.com이라고 출력하고(②), 오른쪽 마우스 버튼을 클릭해서 등록정보 창을
열었을 때 주소(URL)에서 http://www.trustsite.com이 출력되도록 한다(③).
4. IE 팝업창 타이틀바 스푸핑 취약점[2][3]
Windows XP SP2의 보안특성상 주소표시줄이 없는 팝업창이 열릴 경우, 타이틀바에 해당 URL
을 표시한다. 만일 해당 URL이 거짓정보를 포함하여 지나치게 길게 표시된다면, 일반적인 팝업창
의 크기로 볼 때, 거짓정보 부분만 사용자들에게 보여지게 된다. 따라서 사용자는 신뢰된 사이트의
팝업창으로 오인하여 중요 정보를 입력할 수 있다.
이 취약점을 악용하기 위해서 공격자는 와일드카드 DNS 엔트리를 가진 웹서버를 이용해야 한
다. 와일드카드 DNS 엔트리란 정의되지 않은 호스트이름/서브도메인에 대해 디폴트 호스트이름/
서브도메인으로 재지정해주는 것이다.
예를 들어 웹서버 google.com은 securelogin.kbstar.com.google.com 요청에 대해서 “페이지를 표시
할 수 없습니다” 라는 에러메시지를 출력한다. 그러나 와일드카드 DNS 엔트리를 가진 웹서버
e-gold.com은 securelogin.kbstar.com.e-gold.com 요청에 대해 디폴트로(에러메시지를 출력하지 않고)
특정 URL http://www.e-gold.com으로 리다이렉트 시켜준다.
KrCERT-AR-2005-108 http://www.krcert.or.kr
웹브라우저 URL 스푸핑 취약점 정리 cert@certcc.or.kr
__________________________________________________________________________________________
__________________________________________________________________________________________
- 7 -
(그림 15) google.com은 securelogin.kbstar.com.google.com 요청에 대해서 “페이지를 표시할
수 없습니다” 라는 에러메시지를 출력
(그림 16) e-gold.com은 securelogin.kbstar.com.e-gold.com URL 요청에 대해 에러메시지를
출력하지 않고 http://www.e-gold.com으로 리다이렉트 시킴
공격시나리오에 따라 이를 설명하면 다음과 같다. 단, 테스트에 사용된 e-gold.com은 와일드카드
DNS 엔트리를 가진 웹사이트이기 때문에 이용되었을 뿐, 실제 피싱사이트는 아니다.
KrCERT-AR-2005-108 http://www.krcert.or.kr
웹브라우저 URL 스푸핑 취약점 정리 cert@certcc.or.kr
__________________________________________________________________________________________
__________________________________________________________________________________________
- 8 -
(1) IE-popup.html을 실행하면 www.kbstar.com의 홈페이지와 함께 securelogin.kbstar.co...의 타
이틀바를 가진 팝업창이 열린다. 사용자들은 팝업창 타이틀이 securelogin.kbstar.co... 이니까
kbstar.com의 로그인 팝업창으로 속을 수 있다. 그러나 팝업창의 내용은 타이틀바와 상관없는 공격
자의 피싱사이트(여기서는 테스트를 위해 사용된 e-gold.com)이다.
(그림 17) 신뢰할 수 있는 사이트 위에 스푸핑된 타이틀바를 가진 팝업창이 열림
(2) 팝업창의 크기 조절이 가능한 경우, 이 팝업창의 크기를 늘렸을 때, 타이틀바의 전체 문자열
을 볼 수 있다. 앞부분만 securelogin.kbstar.co... 이고 이후에는 실제 공격자의 피싱사이트 주소와
타이틀이 보인다.
KrCERT-AR-2005-108 http://www.krcert.or.kr
웹브라우저 URL 스푸핑 취약점 정리 cert@certcc.or.kr
__________________________________________________________________________________________
__________________________________________________________________________________________
- 9 -
(그림 18) 팝업창의 크기 조절이 가능한 경우, 이 팝업창의 크기를 늘렸을 때,
타이틀바의 전체 문자열을 볼 수 있음
(3) 팝업창에서 전체화면을 선택하면(기능키 󰍩) 주소표시줄이 보이고 실제 주소를 알 수 있다.
(그림 19) 팝업창에서 전체화면을 선택하면 주소표시줄이 보이고 실제 주소를
알 수 있음
KrCERT-AR-2005-108 http://www.krcert.or.kr
웹브라우저 URL 스푸핑 취약점 정리 cert@certcc.or.kr
__________________________________________________________________________________________
__________________________________________________________________________________________
- 10 -
다음은 공격에 사용된 IE-popup.html 소스코드 중 일부이다.
...생략...
pURL = 'http://securelogin.kbstar.com'+'.e-gold.com/';①
...생략...window.open(pURL, '" + id + "',sP);");②
...생략...
targetURL = 'http://www.kbstar.com';③
...생략...
신뢰할 수 있는 사이트 www.kbstar.com를 보여주고(③) 팝업창을 띄우는데(②) 그 타이틀 및
URL이 http://securelogin.kbstar.com.e-gold.com으로 시작되도록 한다.(①)
5. Firefox 모달 다이얼로그 스푸핑 취약점[5]
이 취약점은 팝업창으로 모달 다이얼로그를 숨김으로써 사용자들이 스푸핑된 다이얼로그를 신뢰
하도록 유도할 수 있는 취약점이다. 모달 다이얼로그는 해당 윈도우가 열려 있는 동안 동일한 애플
리케이션의 다른 부분은 동작을 멈추고 있어서 사용자의 입력이 완료되기 전까지는 원래의 화면으
로 되돌아 갈 수 없도록 설계된 대화상자이다.
취약점을 테스트할 수 있는 http://www.mikx.de/firespoofing/ 사이트에 접속하여 “Open
spoofed download dialog”를 클릭하면 (그림 15)와 같이 팝업창이 뜬다. 이 팝업창은 “(특정) 사이
트에 접속하기 위해 EULA를 수락해야 합니다. 수락하신다면 확인 버튼을 클릭하세요” 라고 말하
고 있다. 사용자들은 이것이 최종 사용자로서의 계약 의무사항(End-User Licence Agreement)을 수
락하는 것이라고 생각하고 확인 버튼을 클릭할 수 있다.
(그림 20) 팝업창의 확인 버튼을 클릭한다고 속을 수 있음
KrCERT-AR-2005-108 http://www.krcert.or.kr
웹브라우저 URL 스푸핑 취약점 정리 cert@certcc.or.kr
__________________________________________________________________________________________
__________________________________________________________________________________________
- 11 -
그러나 (그림 16)과 같이 팝업창의 타이틀바를 마우스로 클릭한 후 옆으로 이동시켜 보자. 이 팝
업창이 모달 다이얼로그를 교묘하게 가리고 있음을 확인할 수 있다. 사용자가 클릭하려고 했던 확
인 버튼은 팝업창의 것이 아니라 악성스크립트가 들어있을 수 있는 booom.ht 파일을 실행하는 것
에 동의하는 모달 다이얼로그의 확인 버튼인 것이다.
(그림 21) 사용자가 클릭하려고 했던 확인 버튼은 팝업창 뒤로 숨겨져 있던 모달
다이얼로그의 확인 버튼임
다음은 공격에 사용된 http://www.mikx.de/firespoofing/ 소스코드 중 일부이다.
...생략...
var pHtml =
'<strong>You need to accept this EULA before entering the site:</strong>...생략...①
pWin = open('', 'popUpWin', 'width='+pWidth+', height='+pHeight+', left='+pLeft+',
top='+pTop+', screenX='+pLeft+',screenY='+pTop+...생략...②
팝업창를 만든다(①). 넓이, 높이, 왼쪽 윗 모서리의 위치를 지정하여 팝업창 뒤로 모달 다이얼로
그를 숨긴다(②).
KrCERT-AR-2005-108 http://www.krcert.or.kr
웹브라우저 URL 스푸핑 취약점 정리 cert@certcc.or.kr
__________________________________________________________________________________________
__________________________________________________________________________________________
- 12 -
6. IE를 제외한 여러 웹브라우저들의 IDN 처리 관련
사이트 속성 스푸핑 취약점[6]
Firefox를 포함한 여러 웹브라우저에서 IDN(International Domain Names) 처리시 발생하는 취약
점으로서 주소표시줄, 상태표시줄의 URL을 스푸핑할 수 있다. IDN이란 영문자 대신 각 지역 언어
의 문자를 그대로 사용하는 다국어 도메인 이름이다.
취약점을 테스트할 수 있는 http://secunia.com/multiple_browsers_idn_spoofing_test/에 접속하
여 “Test Now - Left Click On This Link”에 마우스를 대면 (그림 17)처럼 상태표시줄에
http://www.paypаl.com/ 이라고 표기된다. 사용자는 유니코드 라틴알파벳 97번 a대신 키릴자모
1072번 а가 들어간 이 URL을 유사한 생김새로 인해서 원래의 http://www.paypal.com 과 혼동할
수 있다.
키릴자모 라틴알파벳
&#1072; &#97;
&#1086; &#111;
[표 2] 유니코드에서 코드는
다르지만 글자모양은 비슷하다
(그림 17) 상태표시줄에 유니코드 키릴자모 1072번 а가 들어간
http://www.paypаl.com/이라고 표시됨
KrCERT-AR-2005-108 http://www.krcert.or.kr
웹브라우저 URL 스푸핑 취약점 정리 cert@certcc.or.kr
__________________________________________________________________________________________
__________________________________________________________________________________________
- 13 -
“Test Now - Left Click On This Link”를 클릭하면 http://www.paypаl.com/ 으로 이동된다.
(그림 18)에서 보듯이 이 사이트는 신뢰할 수 있는 http://www.paypal.com 으로 위장한 피싱사이
트로 이용될 수 있다. 주소표시줄에도 http://www.paypаl.com/ 이라고 표시되어 있어 사용자들은
더욱더 속기쉽다.
(그림 18) 유니코드 키릴자모 1072번 а가 들어간 http://www.paypаl.com/ 은 원래의 신뢰할
수 있는 사이트 http://www.paypal.com 으로 위장할 수 있음
http://secunia.com/multiple_browsers_idn_spoofing_test/ 소스코드의 일부이다. HREF 태그에서
http://www.payp와 l.com 사이에 &#1072;를 삽입하여(①) Firefox가 IDN 관련 처리를 하도록 유
도하고 있다.
...생략...
<a href="http://www.payp &#1072; ① l.com/" target="_blank"><font color="#000000">Test Now -
Left Click On This Link...생략...
7. IE의 Window 로딩 시 경쟁조건을 이용한 주소표시줄 스푸핑 취약점[9]
웹컨텐츠와 플래시 파일을 같은 브라우저에서 로딩할 때 같은 자원을 두고 서로 경쟁함에 따라
주소표시줄의 URL을 스푸핑할 수 있다.
KrCERT-AR-2005-108 http://www.krcert.or.kr
웹브라우저 URL 스푸핑 취약점 정리 cert@certcc.or.kr
__________________________________________________________________________________________
__________________________________________________________________________________________
- 14 -
(그림 19) 주소표시줄에 신뢰할 수 있는 사이트 http://www.microsoft.com으로 위장할 수
있으나 타이틀바에는 피싱사이트의 URL이 보임
www.buctuong.com/swfs/index.swf는 실제 피싱사이트가 아니라 테스트를 위해 참고한 사이트임
다음은 소스코드의 일부이다. ’new'라는 이름을 가진 브라우저에 피싱사이트가 먼저 로드되면서
타이틀바와 주소표시줄에 URL ①을 표시한다. URL ①이 모두 로딩되지 않은 상태에서 바로 신뢰
할 수 있는 사이트가 로드되기 때문의 타이틀바와 주소표시줄은 URL ②로 바뀐다. 그러나 플래시
파일이 모두 로드된 후 웹브라우저가 주소표시줄을 URL ②로 리프레쉬시킨다. 만일 인터넷 연결
속도와 PC의 처리속도가 빠르다면 URL ①의 플래시 파일이 모두 로드된 후 URL ②가 로딩될 것
이다. 이 경우에는 URL 스푸핑이 발생하지 않는다. 따라서 공격자는 공격을 성공시키기 위해 되도
록 용량이 큰 플래시 파일을 사용할 가능성이 높다.
...생략...
win = window.open('http://www.buctuong.com/swfs/index.swf' ①,'new')
win = window.open('http://www.microsoft.com/' ②,'new')
...생략...
KrCERT-AR-2005-108 http://www.krcert.or.kr
웹브라우저 URL 스푸핑 취약점 정리 cert@certcc.or.kr
__________________________________________________________________________________________
__________________________________________________________________________________________
- 15 -
8. 결론
본고에서는 2004년 11월 이후 공개된 IE와 Firefox 웹브라우저의 URL 스푸핑 취약점을 정리하였
다. 스푸핑 취약점으로 말미암아 URL이 변조되는 현상은 2004년 10월 기술문서에서 설명한 것과
같았다. [표 1]의 1,2,3,9번 취약점은 벤더사에서 보안패치를 발표하지 않았기 때문에 사용자들은 개
인정보를 요구하는 이메일은 바로 삭제하고, 출처가 의심스러운 사이트는 URL 주소를 직접 입력하
거나 필히 재확인 하여 피해를 당하지 않도록 해야한다.
[참고사이트]
[1] http://www.securityfocus.com/bid/12541
[2] http://www.securityfocus.com/bid/10554
[3] http://www.securityfocus.com/bid/12602
[4] http://secunia.com/multiple_browsers_dialog_origin_vulnerability_test/
[5] http://www.securityfocus.com/bid/12234
[6] http://www.securityfocus.com/bid/12461
[7] “IE 등 인터넷 탐색기의 각종 Spoofing 취약점”, 2004년 기술문서 TR2004018, 2004.10.22,
available at http://www.krcert.or.kr
[8] “2005년 9월 인터넷 침해사고 동향 및 분석 월보”, 2005.10, available at
http://www.krcert.or.kr
[9] http://secunia.com/advisories/19521/

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,033 명
  • 현재 강좌수 :  35,781 개
  • 현재 접속자 :  110 명