게시판이나, 웹, 메일 등 자바스크립트와 같은 스크립트 코드를 삽입 해 개발자가 고려하지 않은 기능이 작동하게 하는 치명적인 공격. 또한 대부분의 웹 해킹 공격 기법과는 다르게 클라이언트, 즉 사용자를 대상으로 한 공격이다.
공격자는 이런 취약점이 존재하는 페이지를 탐색 후 XSS공격을 위한 스크립트가 포함 된 URL을 공격 대상에게 노출시키는 방법으로 공격을 수행 할 수 있다.
웹 서버에서 스크립트를 포함한 Response를 전송하여 공격이 수행.
웹 사이트 게시판에 스크립트 삽입하는 공격 방식.
공격자는 이런 취약점이 존재하는 페이지를 탐색 후 XSS공격을 위한 스크립트가 포함 된 게시글을 웹 사이트에 업로드 한다.
게시글 URL을 사용자에게 노출하고 사용자가 게시글을 확임함으로써 URL에 대한 요청을 서버에 전송하게 된다.
웹 서버에서 스크립트를 포함한 Response를 전송하여 공격이 수행.
만약 세션 ID 등을 쿠키에 포함하는 경우 XSS 공격을 통해서 페이지 사용자 세션 ID를 획득해 공격자가 불법적으로 정상 사용자인 척 할 수 있다.
다양한 악성 데이터를 포함시킨 후, 사용자 브라우저가 악성 데이터를 실행시키게 할 수 있다.
공격자는 공격코드가 실행되도록 해 사용자의 시스템을 통제할 수 있다.
만약 회사 조직의 개인 PC가 해킹될 경우, 조직 내부로 악성 코드가 이동해 내부의 중요 데이터가 탈취 될 수 있다.
XSS 공격 자체로 악성프로그램을 다운 받을 수는 없다. 하지만 사용자가 악성 스크립트가 있는 URL을 클릭하도록 유도 해 악성 프로그램을 다운로드 받는 사이트로 리다이렉트 하거나 트로이 목마 프로그램을 다운로드 하도록 유도할 수 있다.
원래 페이지와는 전혀 관련 없는 페이지를 표시할 수 있다. 원래 페이지의 일부를 변조 해 사용자의 개인 정보를 탈취 할 수도 있다.
XSS공격은 IPS, IDS, 방화벽 방법으로 막을 수 없다.
때문에 단수니 문자 필터링 하는 등의 방법만 존재한다.
주로 스크립트의 특수 문자를 필터링 하여 script 문법이 아닌 문자로 치환하여 입력한 그대로 보여준다.