ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Cross-site Scripting Attack (XSS)
    concept/server 2020. 11. 1. 20:02

    educative 를 요약한 자료입니다.

     

    What is a Cross-site Scripting attack?

     

    xss 공격은 악성 스크립트가 웹사이트에 주입된 공격의 한 종류

    유저가 해당 웹사이트에 접속한 경우 악성 스크립트가 실행되고 해커는 유저의 브라우저로부터 기밀 정보를 가지고 간다.

     

    이 공격은 유저가 어떤 정보를 입력하고 그 정보를 데이터베이스에 저장할 수 있는 웹사이트를 대상으로 한다.

     

     

    Types of Cross-site Scripting Attack

     

    1. Stored Cross-site Scripting Attack

     

    해커는 입력하는 칸 (input box)에 악성 코드를 입력하고, 그 코드는 웹 사이트의 데이터베이스에 저장될 것이다.

    그리고나서 유저가 이 웹사이트를 열면 악성 스크립트가 담긴 코멘트가 브라우저에서 실행됨과 동시에 해커의 공격을 받게 된다.

     

    악성 스크립트 공격은 다음 방식으로 공격이 가능하다.

     

    1. 공격 대상자의 키 입력을 캡처하기 위한 브라우저 기반 키 로거 설치.
      이것은 공격자가 소셜 미디어 암호, 이메일 암호, 신용카드 정보, 은행 암호 등에 접근하기 위해 사용할 수 있기 때문에 위험하다.
    2. CSRF 공격과 같은 다른 종류의 공격을 촉발하는 데 사용될 수 있는 사용자의 세션 쿠키를 캡처하는 것.
    3. 유저를 다른 악성 웹사이트로 리다이렉팅 시킨다.

     

    출처 : educative

     

     

    2. Reflected Cross-site Scripting Attack

     

    이 경우의 공격은 해커가 유저에게 악성 스크립트가 담긴 링크를 클릭하게 함으로써 실행된다.

    이 공격이 XSS를 심는 것보다 조금 더 실행하기 어렵다.

     

    유저는 이 악성 링크가 담긴 웹사이트를 이메일, 검색, 광고클릭 등을 통해서 접근하게 된다.

    클릭과 동시에 유저의 브라우저에서 악성 스크립트가 실행되고, 브라우저의 데이터(예를 들어 쿠키) 를 해커에게 전송한다.

     

    출처: educative

     

    How to prevent XSS

     

    * XSS는 웹사이트에 악성코드를 주입하는 방식으로 작동하기 때문에!

    웹사이트 개발자는 사용자 입력들이 데이터베이스에 저장이 되기 전에 이 정보가 검증된 정보인지 확인해야 한다.

    여기서의 이론은 모든 데이터나 입력이 유형과 길이 요건과 같은 특정 기준을 통과할 때까지 악의적인 것으로 취급하는 것이다.

    (철저한 보안을 위해서는 의심부터 하고 보자)

     

    * 사용자 입력을 삭제하는 것은 기본적으로 HTML 마크업과 자바스크립트 코드에 주로 사용되는 잠재적으로 위험한 기호로 모든 사용자 데이터를 정리해야 하는 또 다른 방법이다.

     사용자 입력에서 HTML 태그를 블랙리스트에 올리는 도구들이 많이 있다. 웹 사이트가 사용자 입력에 HTML을 허용하면 이러한 도구를 사용하여 악성 코드를 만드는 태그를 블랙리스트에 올릴 수 있다. 

    (특히 <script> 태그에 해당)

     

     

    댓글

Designed by Tistory.