Skip to content

Latest commit

 

History

History
30 lines (17 loc) · 3.42 KB

xss_attack.md

File metadata and controls

30 lines (17 loc) · 3.42 KB

XSS 공격이란

  • XSS(Cross Site Scripting) 공격이란 웹 브라우저에서 사용자가 입력 할수 있는 input태그 등에 악의적인 script를 작성하여 해당 contents를 이용하는 다른 이용자의 개인정보 및 쿠키정보 탈취, 악성코드 감염, 웹 페이지 변조등의 공격을 하는 보안 공격기법

  • 보안이 약한 웹 어플리케이션에 대한 웹 기반 공격이며 희생자는 어플리케이션이 아닌 user이다. XSS 공격에서 해로운 컨텐츠는 javascript를 통해 전달된다.

1) Stored XSS

공격자는 게시글, 쪽지, 댓글 등등 여러 곳에 자바스크립트 코드를 입력하여 작성해 놓는다.

저장된 XSS 공격은 해커는 웹 애플리케이션에서 XSS 취약점을 파악하고, 악성 스크립트를 삽입하는 방식으로 진행된다. 공격을 당하는 사람은 해당 웹 페이지를 열 때 숨겨진 자바 스크립트 코드가 실행되어 공격당하게 된다.

삽입된 스크립트는 데이터베이스에 저장이 되고, 악성 스크립트가 존재하는 게시글 등을 열람한 사용자들은 쿠키를 탈취당하거나 다른 사이트로 리디렉션되는 공격을 받게 된다. 악성 스크립트가 데이터베이스에 저장되어 지속적으로 공격을 실시하기 때문에 많은 피해가 발생할 수 있다는 것이 영구적 XSS 공격의 특징이다.

2)Reflected XSS

실행 시킨 웹 페이지에서 자바스크립트 코드가 발생하고, get 방식 으로 url에 코드를 입력한다.

가장 일반적인 유형의 XSS 공격으로 사용자에게 입력 받은 값을 서버에서 되돌려주는 곳에서 발생한다. 이러한 유형의 XSS 공격은 피해자에게 입력 받은 검색어를 그대로 표시하는 곳이나 피해자가 입력한 값을 오류 메시지와 함께 보여주는 곳에 악성 스크립트를 삽입하며, 스크립트는 서버가 피해자의 입력 값을 포함해 응답을 전송할 때 실행한다.

반사형 XSS 공격은 피해자가 직접 스크립트를 실행하도록 유도하기 때문에 1회성 공격이라고 할 수 있다. 해커가 주입한 악성 스크립트는 해당 서버를 반사해 오류 메시지나 검색 결과를 통해 피해자의 화면에 표시될 수 있다.

악성 스크립트는 링크를 클릭한 사용자의 쿠키 값을 해커에게 전송하도록 설정되어 있다. 사용자는 버튼 또는 링크를 클릭함으로써 악성 스크립트를 실행하게 되며, 이 경우 악성 스크립트에 감염된 웹사이트에 입력한 모든 정보가 노출된다.

3)DOM 기반 XSS

DOM 기반 XSS 공격은 피해자의 브라우저에 초점을 맞춘 것이 특징인 공격이다.

웹페이지를 여는 즉시 생성되는 문서 객체 모델(Document Object Model, DOM)은 사용자가 서버와 상호 작용하지 않고도 페이지의 모든 콘텐츠에 액세스할 수 있도록 돕는 프로그래밍 인터페이스이다.

반사형 및 영구적 XSS는 응답 페이지 HTML에서 악성코드가 분명하게 나타나기 때문에 위험 징후를 발견할 수 있지만, DOM 기반 XSS는 웹사이트의 코드를 조사하지 않고는 취약점을 발견할 수 없다. 이 때문에 전문 기술 지식을 갖추지 않은 이상 DOM 기반 XSS 공격에 당하기 쉽다. 웹사이트를 클릭하기 전 코드를 확인하는 사람은 많지 않기 때문이다.