Presentation is loading. Please wait.

Presentation is loading. Please wait.

XSS (Cross Site Script)

Similar presentations


Presentation on theme: "XSS (Cross Site Script)"— Presentation transcript:

1 XSS (Cross Site Script)
MADE BY 김 현중

2 XSS이란? 게시판에 새 게시물을 작성하여 등록할 때와 같이 사용자의 입력을 받아 처리하는 웹 응용 프로그램에서 입력 내용에 대해 실행 코드인 스크립트의 태그를 적절히 필터링 하지 않을 경우에 악의적인 스크립트가 포함된 게시물을 등록할 수 있어 해당 게시물을 열람하는 일반 사용자의 PC로부터 개인 정보인 쿠키를 유출할 수 있는 등의 피해를 초래함. 게시물에 실행 코드와 태그의 업로드가 규제되지 않는 경우 이를 악용하여 열람한 타 사용자의 개인용 컴퓨터(PC)로 부터 정보를 유출할 수 있는 보안 취약점.

3 XSS이란? The Open Web Application Security Project

4 XSS의 종류 Stored 방식 Reflected 방식 Dom 기반 방식

5 XSS의 종류 Stored 방식 1. 공격자가 웹 서버에 악성스크립트가 담긴 게시물을 등록한다.
2. 이 때 게시물은 웹 서버에 저장된다. 3. 사용자가 웹 서버에 요청/응답할 때, 악성스크립트가 실행된다.

6 XSS의 종류 Reflected 방식 공격자는 먼저 A사이트에 XSS 취약점이 있는 것을 발견한다.
정보를 획득할 수 있는 공격용 악성 URL을 생성한다. 공격자는 이 URL을 이메일 메시지에 포함하여 배포한다. 4. 피해자가 URL을 클릭하면, 바로 공격 스크립트가 피해자로 반사되어 A 사이트에 관련된 민감한 정보(ID/패스워드, 세션 정보)를 공격자에게 전송한다.

7 XSS의 종류 Dom 방식 - 조작된 URL을 통해 DOM 데이터에 접근 할 때 사용할 수 있는 DOM 객체를 포함하는 자바스크립트가 존재하는 페이지가 있을때, 사용자 측 브라우저에서 DOM 객체를 통해서 공격 코드는 가지고 와 공격이 실행된다.

8 XSS의 공격에 의한 피해 쿠키 정보 / 세션 ID 획득 - 세션 쿠키란?
- 쿠키란? -> 웹 서버가 HTTP 헤더 중 Set-Cookie 필드로 브라우저에게 보내는 작은 텍스트 파일 사용자가 웹사이트를 이용하는 동안 사용자 브라우저에 저장됨. 사용자 상태를 기록 하기 위해 쿠키 값에 로그인, 버튼 클릭 등에 대한 정보를 저장 - 세션 쿠키란? -> 사용자가 웹사이트를 읽거나 방문하는 동안에만 임시로 메모리에 존재하는 쿠키. 브라우저에서는 사용자가 브라우저를 종료하면 세션쿠키를 삭제한다. @쿠키나 세션 ID 획득 시 불법적으로 정상(일반) 사용자로 가장 가능.

9 XSS의 공격에 의한 피해 2. 시스템 관리자 권한 획득 PC 통제 가능.
=> 취약한 웹 서버에 다양한 악성 데이터를 포함 후 사용자가 실행하게 되면 자신의 브라우저에 제로데이 취약점 또는 패치 되지 않은 취약점을 공격하는 공격 코드가 실행되면서 사용자 시스템을 완전히 통제할 수 있다. 이는 회사 등 조직의 내부 시스템으로 이동하여 내부의 중요 정보를 탈취하는 공격으로 이어질 수 있다.

10 XSS의 공격에 의한 피해 3. 악성 코드 다운로드 - XSS공격 자체만으로 악성 프로그램을 다운 할 수는 없음.
- 사용자가 악성 스크립트가 있는 URL을 클릭하도록 유도 하거나 트로이목마 프로그램을 다운로드 하여 설치 할 수 있다.

11 XSS 공격 예방 방법 화이트 리스트 방식 게시물을 등록하는 페이지에 소스에 해당 언어에 맞는 소스를 추가 해준다.
예시로된 <p>, <br> 뿐만 아니라 <script>등 다양한 문자열을 막아 둘 수 있다.

12 XSS 공격 실습 Stored XSS 실습-1 실습 환경 : Webgoat Title과 Message 부분에 옆과 같이 입력.
Submit 버튼을 눌러 게시물 저장. 실습 환경 : Webgoat

13 XSS 공격 실습 Stored XSS 실습-2 실습 환경 : Webgoat
게시물이 저장되면 옆과 같이 게시물이 올라간 것을 확인 할 수 있음. 실습 환경 : Webgoat

14 XSS 공격 실습 Stored XSS 실습-3 실습 환경 : Webgoat
XSS TEST 라는 게시물을 클릭하면 다음 그림과 같이 화면에 스크립트 공격 코드가 실행되는 것을 확인할 수 있음. 만일 다른 사용자가 이와 같은 게시물을 열람하면, 공격자가 원하는 스크립트 공격 코드가 실행됨. 실습 환경 : Webgoat

15 XSS 공격 실습 Stored XSS 실습-4 실습 환경 : http://testphp.vulnweb.com/
타 사이트 동일한 스크립트 작성 <script>alert(‘xss test’)</script> 실습 환경 :

16 XSS 공격 실습 Stored XSS 실습-5 실습 환경 : http://testphp.vulnweb.com/
확인 시 이전 실습과 마찬가지로 팝업 창이 생성되는 것을 확인 할 수 있음. 실습 환경 :

17 XSS 공격 실습 Reflected XSS 실습-1 Reflected XSS 실습 화면 실습 환경 : Webgoat

18 XSS 공격 실습 Reflected XSS 실습-2 실습 환경 : Webgoat
텍스트 111 입력되어 있는 것을 확인하여 소스 내에 value 값이 111인 부분을 검사. 실습 환경 : Webgoat

19 XSS 공격 실습 Reflected XSS 실습-3 실습 환경 : Webgoat
Enter your three digit access code에 다음과 같은 스크립트를 입력 111'><script>window.open(' 실습 환경 : Webgoat

20 XSS 공격 실습 Reflected XSS 실습-4 실습 환경 : Webgoat
입력 후 Purchase를 클릭하면 성공 메시지와 함께 입력했던 사이즈에 네이버 팝업 창이 나오게 된다. 실습 환경 : Webgoat

21 XSS 공격 실습 Reflected XSS 실습-5 실습 환경 : http://testphp.vulnweb.com/
이전 실습과 마찬가지로 해당 스크립트를 입력 111'><script>window.open(' 실습 환경 :

22 XSS 공격 실습 Reflected XSS 실습-6 실습 환경 : http://testphp.vulnweb.com/
입력 후 go 버튼을 클릭하면 111검색 결과와 함께 네이버 팝업 창이 실행된다. 실습 환경 :

23 HTTPONLY COOKIE 2002년 MS IE6.0 SP1에서 최초 지원
클라이언트 브라우저에서 쿠키가 생성 될 때 httponly 옵션이 있으면 클라이언트 스크립트 쿠키 요청에 대해서 브라우저는 응답을 하지 않는다. (document.cookie메소드를 통해 쿠키정보 획득이 불가능) XSS를 이용한 쿠키 유출에 대응하기 위해 개발

24 Thank You


Download ppt "XSS (Cross Site Script)"

Similar presentations


Ads by Google