본문 바로가기
Network Security/네트워크 보안 운영(step)

XSS(Cross Site Scripting) 공격

by 민지.com 2024. 11. 18.
반응형

XSS 공격

: 웹 애플리케이션에서 사용자 입력 값에 대한 필터링이 제대로 이루어지지 않을 때 발생

공격자가 입력 가능한 폼(웹 브라우저 주소 입력 또는 게시판 등)에 악의적인 스크립트를 삽입해 사용자 세션 도용, 악성코드 유포 가능한 취약점

 

- 사용자 인수 값을 받는 웹 사이트 게시판, url 등에 악의적 스크립트를 삽입해 게시글이나 이메일을 읽는 사용자의 쿠키(세션)를 도용 또는 악성코드(url redirect) 유포 가능

 

- 공격방식

1. Stored: 포럼의 게시판, 방명록, 댓글과 같은 사용자의 입력 지점을 통해 서버측 데이터베이스에 저장된 데이터가 사용자 웹 브라우저에 그대로 전달되는지 확인

2. Reflected: 사용자가 입력한 데이터를 사용자의 웹 브라우저에 그대로 반환하는지 확인

 

- XSS 취약점 점검 방법

1. 사용자 인수 값 입력 받는 애플리케이션(회원정보 변경, 게시판, 댓글, 자료실 등)에 스크립트 입력 후 실행되는지 확인

2. 사용자 인수 값 입력 받는 애플리케이션 검색이나 url 부분에 스크립트 입력 후 실행되는지 확인

 

- XSS 보안 설정 방법

1. 게시물에 HTML이나 자바 스크립트에 해당되는 태그 사용을 사전에 제한, 사용자가 입력한 인수 값에 대한 필터링 작업 필요

2. 게시물 본문 외에도 제목, 댓글, 그 외 사용자 측에서 가져오는 값을 신뢰하는 모든 폼과 인수 값에 대해 필터링

3. 입력 값에 대한 필터링 로직 구현 시 공백 문자 제거하는 trim, replace 함수를 사용해 반드시 서버 측에서 구현

4. URLDecoder 클래스에 존재하는 decode 메서드 통해 URL 인코딩이 적용된 사용자 입력값을 디코딩함으로써 우회 공격 차단

5. 웹 방화벽에 모든 사용자 입력 폼을 대상으로 특수문자, 특수 구문 필터링하도록 룰셋 적용

 

- XSS 공격 취약점

: 사용자 입력 폼 또는 url 검색 폼에 <script>alert()</script> 입력해 팝업창 발생하면 취약

 

반응형