-
XSS (Cross Site Scripting) 기초 및 대응방안Web - Security/XSS & CSRF 2023. 5. 9. 14:59
XSS (Cross Site Scripting) 의 목적
이용자가 XSS 이 적용된 링크를 클릭하도록 만든 후 이용자의 쿠키와 세션정보를 탈취하는 것이 목적이다
XSS(Cross Site Scripting)란?
XSS는 공격자가 악의적인 스크립트를 삽입하여 사용자 브라우저에 전송하는 공격을 말한다
현재 이 글을 보고 있는 웹브라우저를 포함하여 Chrome, Safari, Wale, Firefox와 같이 다양한 웹 브라우저들은 JavaScript 코드를 작성하고 실행하는 기능이 있다
XSS는 바로 웹 브라우저의 이 기능을 이용한 공격이며 악의적인 사용자는 글을 작성할 때 JavaScript 언어를 이용하여 악성코드를 같이 작성해 놓는다
Cross Site Scripting의 약어는 CSS라고 불리는 것이 맞지만 CSS와의 중복으로, 혼동되어 사용될 수 있기 때문에 XSS로 명명되었다
XSS 의 종류
Stored XSS
Stored XSS는 XSS에 사용되는 악성 스크립트가 서버에 저장되고 서버의 응답에 담겨오는 것을 말한다
즉 서버는 이용자에게 악성 코드가 담겨진 파일을 보내주게 되는 것이다Stored XSS를 하기 위해선 악의적인 누군가가 서버에 악성코드를 포함하여 파일을 저장해야 XSS 공격이 가능하다
Reflected XSS
Reflected XSS은 해커가 피해자로부터 입력을 받아 이를 즉시 돌려주는 서비스에서 발생하는 보안 취약점을 말한다 (말그대로 반사시킴)
소셜 네트워크에서 악성 사용자가 피해자에게 보내는 악성 링크가 있다
피해자가 해당 링크를 클릭하면 악성 스크립트가 실행되어 피해자의 계정 정보를 탈취하거나, 피해자의 컴퓨터에 악성 코드를 다운로드하는 등의 행동을 할 수 있다위와 같은 링크가 있다고 하자
실제로 이동을 하는곳은 href="" 에서 큰 따옴표 사이에 적힌 곳으로 이동을 하고 화면에 보이는 것은 facebook.com 이다
화면에 요렇게 보이는데 이곳에 클릭을 하지 않고 마우스를 위에 올려서 1초 정도 기다리다 보면 화면 왼쪽 아래에 어디로 이동을 하는지 링크가 보인다
위 사진과 같이 실제로 이동하는 위치가 보이고 XSS를 예방하는데 도움이 된다
DOM-based XSS
Document Object Model(DOM)을 이용한 XSS 공격이다
서버로 전달되는 데이터가 아니라 클라이언트 측에서 JavaScript를 실행하는 과정에서 발생한다예를 들어 검색어에 <script><script> 태그를 삽입하여, 이를 동적으로 생성된 HTML 코드에 포함시킨 후
사용자가 해당 검색 결과 페이지를 열면, 이 스크립트가 실행되어 공격자가 원하는 행동을 할 수 있다DOM-based XSS 공격은 사용자의 브라우저를 통해 악성 스크립트가 실행되는 것이 특징이다
Universal XSS
Universal XSS는 Reflected XSS 및 Stored XSS와 마찬가지로 사용자가 입력한 데이터를 악용하여 공격하는 방법이다
Universal XSS는 어떤 웹 페이지에서도 발생할 수 있는, 즉 모든 브라우저와 모든 페이지에서 발생할 수 있는 XSS 공격을 말한다
일반적인 Reflected XSS나 Stored XSS와는 달리, 특정한 취약점이나 조건이 필요하지 않고, 모든 브라우저와 웹 페이지에서 공격이 가능하다는 특징이 있다
이는 공격자가 악성 스크립트를 삽입하고 이를 모든 사용자가 실행시키는 것이 가능하다는 것을 의미한다728x90'Web - Security > XSS & CSRF' 카테고리의 다른 글
CSRF 2 시나리오 (0) 2023.06.01 CSRF 1 시나리오 (0) 2023.06.01 CSRF (Cross Site Request Forgery) 기초 (0) 2023.05.24