본문 바로가기

웹 개발

XSS

XSS

  • Cross Site Scripting

  • CSS는 이미 사용중인 약어로 XSS라 함

  • XSS는 게시판, 웹 메일 등에 스크립트 코드를 삽입 해, 고려되지 않은 기능이 작동하게 하는 공격

  • 클라이언트 대상

Reflected XSS

  • 취약점이 존재하는 페이지에 XSS 공격을 위한 스크립트가 포함된 URL을 공격 대상자에게 노출시키는 방법

  • 공격자가 미리 XSS 공격에 취약한 웹 사이트 탐색

  • XSS 공격을 위한 스크립트를 포함 한 URL을 사용자에게 노출

  • 사용자가 URL 클릭

  • 웹 사이트의 서버에 스크립트가 포함 된 URL을 통해 Request 전송

  • 웹 서버에서 해당 스크립트를 포함한 Response를 전송

Stored XSS

  • 웹 사이트의 게시판에 스크립트 삽입하는 공격

  • 공격자가 미리 XSS 공격에 취약한 웹 사이트 탐색

  • XSS 공격을 위한 스크립트를 포함 한 게시글을 웹 사이트에 업로드

  • 게시글 URL을 사용자에게 노출

  • 사용자가 게시글 확인

  • URL에 대한 요청을 서버에 전송

  • 스크립트를 포함한 Response를 전송하며 공격 수행

예상 피해

쿠키 정보, 세션 ID 획득

취약 페이지를 이용하는 사용자의 쿠키나 세션 ID를 획득할 수 있음

시스템 관리자 권한 획득

사용자의 브라우저가 악성 데이터를 실행하게 할 수 있음

취약점에 대한 공격 코드를 실행해 사용자의 시스템 통제할 수 있음

개인 PC가 해킹될 경우, 조직 내부로 악성 코드가 이동해 내부의 중요 정보 탈취될 수 있음

악성코드 다운로드

스크립트 자체로 악성 프로그램 다운은 불가

악성 스크립트가 있는 URL을 클릭하도록 유도하여, 프로그램을 다운받는 사이트로 Redirect하거나 트로이 목마 프로그램을 다운하도록 유도 가능

거짓 페이지 노출

XSS 공격에 취약할 경우, script 뿐만 아닌 img같은 그림을 표시하는 태그를 사용해 기존 페이지와 관련 없는 페이지를 표시할 수 있음

페이지 위변조를 해 개인정보 유출 등의 위험이 있음

XSS 방지법

문자를 필터링 하는 방법만이 존재

  1. Script 문자 필터링

    입력값에 대한 검증이 제대로 이루어지지 않아 발생

    사용자가 입력한 모든 값을 서버측에서 필터링을 해주어야 한다.

  2. htmlentities 사용

    특수문자를 모두 HTML entity로 변환

    < = &gt

'웹 개발' 카테고리의 다른 글

도커  (0) 2021.03.14
쿠버네티스  (0) 2021.03.14
MyBatis TypeHandler  (0) 2021.03.14
프록시  (0) 2021.03.14
정적 코드 분석, Static Code Analysis  (0) 2020.09.23