네트워크 - XSS (Cross-Site Scripting)

![]/images/computer-science/network/http/xss.png)

XSS (Cross-Site Scripting)

공격자가 보안이 취약한 웹 사이트에 악성 스크립트를 삽입하는 공격 기법

  • XSS 를 통해 C&C (좀비 PC에 명령을 내리거나 악성 코드를 제어하는 서버) 로 리다이렉하거나
  • 사용자의 쿠키를 탈취해 Session 하이재킹 공격을 할 수 있다.

Persistent XSS

공격자가 심어놓은 특정 스크립트가 서버에 저장돼 지속적으로 서비스를 제공하는 정상 페이지에서 공격자에게 스크립트가 노출되는 기법

Relected XSS

웹 어플리케이션의 파라미터를 사용할 때 발생하는 취약점을 이용한 공격 기법

  • 쿼리 파라미터로 특정 스크립트를 보냈을 때 서버가 필터링을 거치지 않고 파라미터로 포함된 스크립트를 응답 페이지에 담아 전송할 때 문제가 발생

XSS 의 위험성

  • 쿠키 정보 및 Session ID 획득
  • 시스템 관리자 권한 획득
  • 악성코드 다운로드
  • 거짓 페이지 노출

XSS 방지법

  • HTML 5 에서는 innerHTML 을 통해 주입한 스크립트는 실행되지 않는다.
  • Cookie 에 HttpOnly 옵션을 활성화 한다.
    • document.cookie 를 이용해 Cookie 정보를 가져오는 것을 차단한다.
    • 단 localStorage 에 저장된 정보에 대한 접근은 막을 수 없다.
  • Script 문자 필터링
  • htmlentity 사용
    • 특수문자를 HTML Entity 로 변환한다.
    • < : < 로 변환
    • > : > 로 변환
Share