사이트 간 스크립팅
사이트 간 스크립팅(또는 크로스 사이트 스크립팅, 영문 명칭 cross-site scripting, 영문 약어 XSS)은 웹 애플리케이션에서 많이 나타나는 취약점의 하나로 웹사이트 관리자가 아닌 이가 웹 페이지에 악성 스크립트를 삽입할 수 있는 취약점이다. 주로 여러 사용자가 보게 되는 전자 게시판에 악성 스크립트가 담긴 글을 올리는 형태로 이루어진다.
개요
사이트 간 스크립팅은 웹 애플리케이션이 사용자로부터 입벽 받은 값을 제대로 검사하지 않고 사용할 경우 나타난다. 이 취약점으로 해커가 사용자의 정보(쿠키, 세션 등)를 탈취하거나, 자동으로 비정상적인 기능을 수행하게 할 수 있다. 주로 다른 웹사이트와 정보를 교환하는 식으로 작동하므로 사이트 간 스크립팅이라고 한다.[1]
특징
공격 유형
사이트 간 스크립팅의 공격 유형은 표준화로 정해져 있지 않지만, 전문가들은 사이트 간 스크립팅의 유형을 구분한다. 비 지속적인 공격(Non-persistent XSS)과 지속적인 공격(Persistent XSS), 그리고 소스코드 추가로 발생되는 DOM(Document Object Model, 문서 객체 모델)기반 사이트 간 스크립팅 등 유형으로 구분한다.
- 비 지속적 기법
- 비 지속적 사이트 간 스크립팅은 반사 사이트 간 스크립팅이라고도 불리며, 가장 일반적인 유형이다. 웹 클라이언트가 제공하는 HTTP 쿼리 매개 변수에서 적절하지 않고, 구문 분석 및 해당 사용자에 대한 결과의 페이지를 표시하는 공격 기법이다. 검증되지 않은 사용자가 URL 피라미터나 HTTP 요청 헤더 정보를 수정하여 공격할 수 있다. 잠재적인 취약점이 존재하는 대상은 검색 엔진으로 검색 엔진의 검색창에서 하나의 문자열을 검색하는 경우, 검색 문자열은 일반적으로 결과 페이지에 그대로 노 다시 표시된다. 삽입 된 문자열을 다시 표시하면서 문자열이 가지고 있는 스크립트가 동작된다면 취약점이 존재하는 것이다.[1]
- 지속적 기법
- 지속적 사이트 간 스크립팅은 더 치명적인 기법이다. 공격자가 제공 한 데이터가 서버에 저장 된 다음 지속적으로 서비스를 제공하는 정상페이지에서 다른 사용자에게 노출된다. 해당 취약점이 대표적으로 발생하는 위치는 사용자가 읽을 수 있고, HTML 형식의 메시지를 게시 할 수 있는 온라인 게시판이 해당된다. 공격자의 악의적인 스크립트가 피해자를 일일이 제 3자 웹 사이트로 유인 할 필요없이, 자동으로 렌더링되기 때문에 지속적인 사으타 간 스크립팅 취약점은 다른 유형보다 더 위험하다.[1]
- DOM 사이트 간 스크립팅 기법
- DOM은 W3C 표준으로 HTML 및 XML 문서에 접근 방법을 표준으로 정의하는 문서 객체 모델로 공격 과정은 빅팀(Victim)의 브라우저(Browser)가 HTML 페이지를 구문 분석할 때마다 공격 스크립트가 DOM 생성의 일부로 실행되면서 공격한다. 페이지 자체에는 변화가 없으나 페이지에 포함된 브라우저측 DOM 환경에서 악성코드가 실행된다. 다른 기법들과는 달리 서버와 관계없이 발생하는 것도 특징이다.[2]
각주
- ↑ 1.0 1.1 1.2 위키백과-https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%ED%8A%B8_%EA%B0%84_%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8C%85
- ↑ Security/3. WEB Sec, 〈XSS(Cross Site Scripting)〉, 《CIO Korea》, 2019-03-29
참고자료
- 위키백과-https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9D%B4%ED%8A%B8_%EA%B0%84_%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8C%85
- Security/3. WEB Sec, 〈XSS(Cross Site Scripting)〉, 《CIO Korea》, 2019-03-29