Notice
Recent Posts
Recent Comments
Link
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

Maru's

XSS와 CSRF 본문

WEB

XSS와 CSRF

Maru.Maru 2017. 7. 10. 23:46

XSS(Cross-Site Scripting)취약점


웹 취약점 중 하나로 웹사이트 관리자가 아니라도 악성 스크립트를 삽입 할 수 있는 취약점이다. 주로 게시판 등에 스크립트를 삽입 할 수 있다.

공격 종류로는 저장 XSS공격, 반사 XSS 공격 DOM 기반 XSS공격 이 있다.




1) 저장 XSS 공격


  저장 XSS공격은 XSS취약점이 있는 웹 서버에 악성 스크립트를 영구적으로 저장 해 놓는 방법이다. 게시판을 사용할 때 게시판 내용 안에 스크립트를 삽입 해 놓는다. 그 후 다른 사용자가 이 스크립트가 삽입된 게시판을 열게 되면 그 스크립트가 실행된다.




[그림 1]: 저장 XSS 방식



가장 일반적인 방법으로 게시판 같은 곳에 HTML 문서에 <Script>를 이용하여 이 스크립트 태그안에 악성 스크립트를 저장하는 방식이다.


2) 반사 XSS 공격

  반사식 XSS 공격은 웹 애플리케이션의 지정된 변수를 이용할 때 발생하는 취약점을 이용하는 것이다.


  일반적으로 서버에 검색 내용을 입력하면, 검색 결과가 있는 경우에는 결과 값을 사용자에게 전달하지만, 서버에서 정확한 결과가 없는 경우 서버는 브라우저에 입력한 값을 그대로 HTML문서에 포함하여 응답한다.


  공격자는 희생자의 이메일 등으로 악성스크립트가 포함한 URL을 전송하고, 희생자는 그 URL을 클릭하는 순간 스크립트가 실행되어지는 형태이다.

 

[그림 2]: 반사 XSS공격 방식


3) DOM 기반 XSS 공격


DOM(Document Object Model)이란 W3C 표준으로 HTML 및 XML 문서에 접근 방법을 표준으로 정의하는 문서객체 모델이다.



 

[그림 3]: DOM기반 XSS공격 방식



DOM기반 공격과 반사 공격의 차이점은 반사 공격은 악성 페이로드가 서버 측 애플리케이션 취약점으로 인해, 응답 페이지에 악성 스크립트가 포함되어 브라우저로 전달되면서 공격하는 것인 반면 DOM 기반 XSS는 서버와 관계없이 브라우저에서 발생한다.



XSX의 공격 피해


1) 쿠키 세션 정보/세션 ID 획득

   XSS공격으로 쿠키나 세션 ID를 획득하여 일반 사용자로 가장이 가능하다.


2) 시스템 관리자 권한 획득

   사용자 브라우저의 취약점을 공격하여 PC를 통제 가능하다.


3) 악성코드 다운로드

   XSS공격 자체만으로 악성 프로그램을 다운 할 수는 없지만 사용자가 악성 스크립트가 있는 URL을 클릭하도록 유도 할 수 있다.


대응 방안


화이트 리스트 방식으로 소스에 <Script> <p> <br> 악성 스크립트를 짜지 못하게 필터링 해준다. 


CSRF(Cross Request Forgery)


CSRF는 사이트 간 요청 위조로 웹 사이트의 취약점을 이용하여 사용자가 의도하지 앟는 요청을 송신하도록 하는 공격을 의미합니다. XSS와 취약점이 비슷하지만 XSS와의 다른 점은 크게 공격 대상이 클라이언트 인지 서버인지에 따라 분류됩니다. XSS는 공격 대상이 클라이언트가 되고 CSRF는 공격 대상이 서버가 된다는게 차이점입니다. 또한 XSS는 쿠키나 정보를 탈취한다는게 목적에 있다면 CSRF은 사용자의 비정상 행위를 발생시킵니다.


[그림 4]: CSRF 공격방식


대응책으로는 XSS 취약점이 없도록 확인하고 웹클라이언트로 부터 전달된 세션 토큰의 진위성을 확인하여야 한다.

'WEB' 카테고리의 다른 글

FileUpload와 FileDownload  (0) 2017.07.10