'XSS(Cross Site Scripting: 크로스 사이트 스크립팅) == CSS'에 해당되는 글 1건

  1. 2009.10.05 XSS(Cross Site Scripting: 크로스 사이트 스크립팅) == CSS
90.개발관련문서2009. 10. 5. 22:24
반응형

IE 8 ㅡㅡ;; "교차"라는 말도 맞긴 하지만, 은근히  애매한듯...


자, 이제 크로스사이트 스크립팅(XSS)에 관하여 정리해보자.


날도 뻐근하고, 봄이면.. 잠만 퍼질러 자는 체질이라.. 너무 놀았네..


XSS사이트 스크립트의 일반적인 공식에 대해서 알아보겠다..


웹 사이트를 들어가보게 되면, 기본적인 게시판, 메일등 사용자가 직접 올릴수 있는 부분이 한개씩은 있기 마련이다.

위의 그림이 XSS의 기본적인 그림을 그린것이다.


1. 공격자는 서버에게 타겟(불특정 다수)이 읽을수 있도록, 내용과 악성 스크립트를 포함시킨 코드를 올리게 된다.


2. 타겟은 글을 읽음으로서, 공격자에게 자신이 의도치 않은 쿠키값을 전송하게 된다.


3. 쿠키 정보를 수집한 공격자는 타겟의 계정과 동일하게 모든 권한을 가지게 된다.


[ 쿠키(Cookie) ]



- 사용자가 어떠한 웹서버의 접속을 요청하게 되면, 로컬 시스템은 쿠키값을 참조하여 접속하게 된다.

   

   기존의 사이트 쿠키값이 없을 경우, 웹 서버에 접속하게 되면 자신의 시스템에 4kbyte이하의 쿠키값이 생성한다.

  

   쿠키값은 사용자의 브라우저의 정보를 쿠키값에 지정하게 되며, Windows_Server에서의 경로를 표시하였다.


각각의 포함된 쿠키값은 Web_Server별로 정리되어져 있으며, 사용자 ID와 접속 서버로 이루어져 있다.


일반적으로 확인하게 되면, Domain Name Server / 구분 ID(숫자) / 쿠키만기일 등의 구조로 이루어질 것이다.


그렇다면?? 왜 쿠키값이 위험한 것일까??


쿠키는 일반적으로 위의 정보를 제외한, 접속자의 개인 정보까지 포함되어 있어 취약점으로 발전해온 것이다.


내가 만약 네이버에 접속하였을 경우, 그에 대한 ID와 PW는 쿠키값이 포함되어져 있다.


네이버에 처음 접속하였다고 하자. 그렇다면 네이버 서버에 접속하게 되면, 4kbyte이하의 쿠키값이 접속 호스트에 저장이 될것이며,


그에 대한 쿠키값은 다음 접속시 접속할 서버는 쿠키값을 가지고, 파악하게 된다.


쿠키값은 접속 종료시 즉각, 정보가 사라지는 것이 아니다.


간혹가다 사이트 계정으로 접속하여, 브라우저를 끄고, 다시 접속해보면 기존의 ID계정으로 접속해있는 것을 보았을 것이다.


[ 쿠키(Cookie)의 중요성 ]


1. 사용자의 계정 정보


2. 자주 방문하는 서버의 정보


3. 장바구니 시스템(물건 구매시 쿠키값에 남는 현상)

    위와 같은 것들이 일반적인 쿠키의 적용 방식이다.


[ XSS 공격 특성 ]

- 기본적인 설명은 위에서 하였으므로, XSS에 대해서 더욱더 들어가보자.


[ 공격 순서 ]

1. 게시판과 같은 응용 프로그램에 스크립트 작성 언어를 올려놓게 된다.(불특정 다수)



2. 파일 열람시 타겟은 자신도 모르게 쿠키값을 가로 채이게 된다.


3. 일반적으로, 공격자는 파로스와 같은 툴로서 쿠키값을 확인하게 된다.




4. 쿠키값을 이용하여, 계정 도용이 가능하다


[ 방어 대책 ]

1. 쿠키 값에 중요한 정보는 응용 프로그램 관리자가 포함되지 않도록 설정.


2. 사용자의 입력 값에대한 필터링

    <script></script> / <javascript> / document.cookie


3. HTML 태그의 미활성화(동적 웹 특성에 대한 HTML활성화.)


4. 스크립트 언어(ASP,PHP,JAVA등)의 문구를 다른 코드로 대체, 혹은 필터링


5. 가장 중요한 것은 관리자의 지속적인 점검


출처 : http://nuninaya.tistory.com/category/%EA%B0%9C%EB%B0%9C/WAS_JBOSS

Posted by 1010