Top Banner
XSS 공격 사이버경찰학과 10111035 추혜숙
25

XSS 공격 추혜숙(1).pdf · 2013. 10. 17. · xss 공격 가능 여부 테스트 등록한 게시물을 클릭하면, 사용자의 쿠키값이 팝업 창 으로 나타난다.

Jan 30, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • XSS 공격 사이버경찰학과

    10111035

    추혜숙

  • XSS 란?

  • • Cross Site Scripting의 약어

    • 데이터에 스크립트를 삽입하여 정상적인 기능외의 동작을 하게끔 만드는 해킹 유형으로 Web 취약점 중 하나

    • 공격 상대는 서버가 아닌 클라이언트

  • xss가 왜 나타나게 되었는가?

    • 인터넷이 활성화 된 현재, 게시판에 글을 쓰고 메일을 작성하는 등 사용자가 개입하여 동적으로 생성되는 페이지로 바뀌어가면서 XSS 취약점이 나타나기 시작

  • owasp (국제웹보안표준기구) top 10 2013

    출처 : www.owasp.org

    이 취약점이 위협적인 이유는 공격 기법 자체가 HTML과 Script를 사용하여 쉽게 공격 코드를 제작할 수 있다는 것과, 이렇게 제작된 간단한 공격 코드를 대부분의 홈페이지에 손쉽게 올릴 수 있기 때문이다.

  • XSS 실행원리

  • [그림1] 정상적인 문자열을 입력할 때의 과정

    [그림2] 스크립트 코드 문자열을 입력할 때의 과정

    일반적인 웹 페이지에서는 사용자가 게시판에 단순 문자열을 입력하면 웹 서버가 그 문자열을 처리하여 웹 페이지에 보여준다.

    공격자가 웹 페이지에 스크립트 코드를 입력하면 스크립트가 웹 서버에 전송되어 웹 서버가 다시 웹 페이지를 보여줄 때 그 스크립트 코드가 실행된다.

  • XSS 공격형태

  • Cookie Sniffing

    1. 공격자는 악성 스크립트(Cookie 훔치는)를 정상적인 웹 서비스를 하고 있는 홈페이지에 올려 놓는다.(게시판이나, 메일, 블로그 등…)

    2. 일반 사용자는 아무것도 모른 상황에서 게시물을 보거나 메일을 확인하거나, 블로그에 접속한다.

    3. 일반 사용자는 자신도 모르게 공격자가 올려놓은 악성 스크립트를 자동으로 실행하게 되고, 자신의 Cookie(인증 정보가 들어 있는)값을 공격자에게 전송하게 된다.

    4. 공격자는 사용자의 Cookie 값을 이용하여, 일반 사용자인척 속인 후, 개인 정보를 유출하거나, 데이터를 훔치거나, 삭제, 변조 등 다양한 공격을 한다.

  • XSS 실습

  • bbb라는 사용자로 로그인

    1. xss 공격 가능 여부 테스트

  • xss 공격 가능 여부 테스트

    내용 부분에 공격 스크립트인 alert(document.cookie)를 입력한 후 게시물을 등록한다.

  • xss 공격 가능 여부 테스트

    등록한 게시물을 클릭하면, 사용자의 쿠키값이 팝업 창으로 나타난다. 팝업 창이 밑에 그림과 같이 나타나면 해당 게시판은 xss 공격에 취약한 것을 알수있다.

  • 2. Cookie asp 파일 작성

    쿠키 값을 저장하기 위한 cookie.asp 파일을 작성한다.

  • 3. xss 공격 스크립트 작성

  • 4.관리자 계정으로 게시판 로그인

  • 관리자가 게시물을 읽고 아무런 오류 메시지가 나타나지 않으면 xss공격이 성공했다는 걸 알수있다.

  • cookie.asp 파일을 업로드 한 경로와 같은 경로에 cookie.txt 파일이 생성되므로 주소창에 http://61.75.199.55/board/pds/cookie.txt를 입력하면 관리자로부터 획득한 쿠키 값이 보이게 된다.

    http://61.75.199.55/board/pds/cookie.txt

  • 복사된 쿠키 값을 사용하기 위해 Cooxie Toolbar 메뉴 중 Edit Cookie를 사용한다.

    복사 한 쿠키 값을 붙여넣으면 공격자 PC는 관리자의 쿠키 값을 가지고 있는 상태가 된다.

  • 관리자의 쿠키 값을 가지고 있기 때문에 로그인 화면을 거치지 않고 바로 관리자 모드로 게시판 리스트를 확인 할 수가 있다.

  • XSS 보안

  • 1. 게시판이나 메일 기타 등등에서 HTML이 사용이 필요치 않을 경우에는 HTML을 허용하지 않아야 한다.

    2. HTML을 허용해야 할 경우에는 꼭 필요한 태그만을 허용해야 한다. (불필요한 태그만을 필터링 하는 것은 손쉽게 우회가 가능하다.)

    3. 태그의 속성, 이벤트를 꼭 확인하여 그에 대해 적절히 대응해야 한다.

    4. HttpOnly 속성을 적극 잘 활용해야 한다.

    5. Login 처리 시 IP와 Session을 하나로 묶어 A라는 Session은 B라는 IP에서만 사용이 가능하게 한다.

    6. 가급적 사이트에서 HTML 표준을 따른다.

    7. 개인정보를 열람하거나 수정할 경우 꼭 다시 한번 인증 절차를 거치게 한다.

    8. 주기적으로 취약성 체크 툴을 사용하여 검증 절차를 거친다.

    9. 브라우저 단에서 XSS를 막아주거나, 자바스크립트를 제한해주는 보안 툴을 사용한다.

    최대한 피해를 줄이기 위해 어떻게 해야 하는지 알아보도록 하자

  • 그 외 다양한 공격 기법

  • • Key Logger 웹 페이지 안에 키보드 이벤트를 받아 입력된 키 값을 공격자의 컴퓨터로 계속 전송하여

    홈페이지에서 입력되는 모든 키를 가로채는 행위를 한다. 이는 아이디나 패스워드를

    입력할 때도 적용이 되며, 이로 인해 아이디/패스워드, 게시물 작성 내용, 웹 페이지

    활동 내역 등 다양한 정보를 가로챌 수 있으므로 특히나 주의해야 한다.

    • Mouse Sniffer Key Logger등을 막기 위해 은행권에서 마우스를 통해 특정 번호를 입력하는 방식을

    취하고 있다. 이러한 방어 기법을 우회하기 위해 공격자는 마우스의 위치를 추적하여,

    어떠한 키가 눌러졌는지 체크하여 공격자의 서버로 정보를 넘기는 공격이다. 즉 마우스

    클릭 시의 X,Y 좌표를 공격자에게 넘겨줌으로써, 일반 사용자가 어떠한 키를 마우스를

    통해 눌렀는지 알 수가 있다.

  • • 거짓 정보 추가하기 공격자는 사용자가 보여지는 페이지를 페이지 상에서 수정하여 보여줄 수가 있다.

    공격자는 DOM 트리에서 어떠한 정보라도 수정할 수가 있다.

    예를 들어 id/password 를 인증하기 위한 페이지를 공격자의 페이지로 바꿀 수 있으며, 현재 보여지고 있는 페이지 전체를 레이어를 통해 공격자가 원하는 페이지로 완전히 다 바꿔버릴 수도 있다. 예를 들어 은행권과 같은 금융 관련 사이트이거나, 개인정보 페이지일 수도 있으니 특별히 주의해야 한다.

    • 데이터 변조 및 삭제, 생성 메일 서비스나 기타 서비스를 받고 있을 때, XSS 공격으로 인해 게시물이나 메일과 같은 데이터를 자신도 모르게 삭제될 수 있다. 이는 공격자가 메일이나 게시물을 읽을 때 글을 삭제하는 스크립트를 넣어두고, 사용자나 관리자가 읽게 만들어 데이터를 삭제하는 방법으로 사용된다. 또한 이를 사용하여 데이터를 변조할 수도 있다. 또한 관리자 계정이나 일반 사용자 계정을 추가할 수 있으므로 각별히 유의해야 한다.