XSS(Cross Site Scripting) 공격

XSS(Cross Site Scripting)란?

[보안 취약점 진단 및 대응/취약점] - XSS/CSRF 공격

 

XSS/CSRF 공격

XSS와 CSRF XSS 공격은 Cross Site Scripting의 약자로, 웹 애플리케이션에서 많이 나타나는 취약점 중 하나입니다. 공격자가 웹페이지에 악성스크립트를 삽입하는 공격입니다. [XSS 종류] ▷ Reflected XSS:

psjin230.tistory.com

 

XSS는 사용자 입력 값을 충분히 검증하지 않았을 때 발생하는 취약점으로, 웹페이지에 악의적인 스크립트를 포함시켜 사용자 측에서 실행되게 유도하는 취약점입니다. 모의해킹/취약점 진단 시 가장 높은 비율로 탐지 됩니다. 

▷Reflected XSS(반사형 XSS) : 공격자가 작성한 스크립트 코드가 별도로 저장되지 않고 특정 사용자에게 직접 주입되어 실행되는 형태입니다. 주로 악의적인 링크를 통해 공격이 실행되며 사용자가 공격 URL을 클릭하면 발생합니다. 

▷Stored XSS(저장형 XSS) : 악성 스크립트가 DB에 저장되어 해당 스크립트가 다른 사용자에게 제공되는 경우 발생합니다. (ex) 댓글, 게시글에 악성 스크립트가 저장되어 있는 경우, 사용자가 해당 페이지를 방문할 때 스크립트가 실행됨

▷DOM-based XSS(DOM 기반 XSS) : 악성 스크립트가 사용자의 입력에 의해 동적으로 변경되는 경우에 발생합니다. 주로 웹사이트의 동적인 부분에 악성 스크립트가 삽입되어 사용자의 브라우저에서 실행됩니다.(스크립트가 DOM의 일부로 실행됨)

 

(1) script 공격시도

=> <script>alert('XSS 공격이닷')</script>

 

(2) 개발자 도구 확인

=> 입력값 문법 확인

=> <input type="text" name="dong" size="100%" value="<script>alert('XSS 공격이닷')</script>">

 

(3) input을 사용한 XSS 공격

=> "><script>alert('XSS 공격이닷!')</script><"

=> 스크립트 삽입 후에도 정상 페이지가 로딩될 수 있도록 수정

 

(4) 주석을 사용한 XSS 공격

=> --><script>alert(‘주석을 사용한 XSS 공격이다!!’)</script><!--

 

(5) JavaScript를 사용한 XSS 공격

=> ";}</script><script>alert('Javascript를 사용한 XSS 공격~~')</script><script>"