본문 바로가기
자격증/정보보안기사

크로스 사이트 스크립트(XSS:Cross Site Script) 취약점

by Royal! 2023. 3. 7.
728x90
반응형
  • 웹 어플리케이션에서 사용자 입력값에 대한 필터링이 제대로 이루어지지 않을 경우, 공격자가 입력이 가능함 폼(웹 브라우저 URL 또는 게시판 등)에 악의전인 스크립트를 삽입, 해당 스크립트가 희생자 측에서 동작하도록 하여 악의적인 행위를 수행하게 하는 취약점
  • 공격자는 취약점을 이용하여 사용자의 개인정보 및 쿠키정보 탈취, 악성코드 감염, 웹 페이지 변조 등의 공격을 수행
  • 크게 3가지 유형으로 구분 Stored XSS(저장형 XSS), Reflected XSS(반사형 XSS), DOM based XSS(DOM 기반 XSS)

 


Stored XXS

  • 공격자가 취약한 웹서버에 악성 스크립트를 저장해 놓으면 희생자가 해당 자료를 요청할 때 해당 악성 스크립트가 삽입된 응답 페이지가 전달되어 클라이언트 측에서 동작
  • 악성 스크립트가 취약한 웹서버의 DB에 저장되는 형태

Reflected XSS

  • 외부에 있는 악성 스크립트가(외부 사이트 또는 이메일 등에 포함된 링크) 희생자 액션에 의해 취약한 웹서버로 전달되고, 웹서버의 응답페이지에 해당 악성 스크립트가 삽입되어(DB에 저장되는 것이 아님) 희생자 측에서 동작
  • 희생자 액션이란 공격자에 의해 조작된 사이트에 접근 시 그 서버에서 악성 스크립트를 포함하여 리다이렉트되는 경우나 악성 스크립트가 포홤된 링크를 가지고 있는 이메일을 받은 후 이를 클릭하여 취약한 웹서버로 요청 정보를 보내는 행위
  • Stored XSS는 악성 스크립트가 취약한 웹서버의 DB에 저장 되어 있는 형태이나, Reflected XSS는 DB에 저장되어 있는 것이 아닌 악성 스크립트가 포함된 요청 정보를 처리하는 과정에서 악성 스크립트가 포함된 응답 페이지가 생성되어 희생자에 전달하는 방식

DOM based XX

  • DOM(Document Object Model)은 문서 객체 모델로 웹페이지(HTML/XML)내에 있는 모든 객체들을 조작, 관리할 수 있는 계층 구조 형태의 모델. DOM을 통해 HTML 문서를 계층적으로 보면서 컨텐츠를 동적으로 변경 가능
  • 희생자의 웹 브라우저에서 응답 페이지에 포함된 자바 스크립트(정상적 스크립트)가 동작하면서 DOM 객체를 실행할 때 URL 등에 포함된 악성 스크립트가 동작
  • 저장형 및 반사형 XSS의 경우 응답 페이지에 악성 스크립트가 포함되어 웹 브라우저로 실행되는 반면, DOM 기반의 XSS는 응답 페이지와 관계없이 웹 브라우저에서 발생하는 차이점을 가짐

대응 방안

  • 사용자 입력값에 대한 검증을 반드시 "서버" 단에서 진행
    • 클라이언트 단에서 수행 시 웹 프록시 등에 의해 데이터 조작이 가능.
    • 대표적인 툴로 Paros, Burp 등이 있음
  • 사용자 입력 문자열에서 HTML 코드로 인식될 수 있는 특수문자를 일반문자(HTML Entity)로 치환하여 처리(이스케이프 처리)
HTML 특수 문자 HTML Entity 의미
< , > &lt; , &gt; HTML 태그 기호
& &amp; HTML Entity 표현기호
" , '  &quot; , &#039; 속성값을 표혀
728x90
반응형

최근댓글

최근글

Royal! © 2024