XSS란 무엇인가?
동적인 처리가 이루어지는 웹 어플리케이션에서 공격자에 의해 조작된 악의적인 스크립트를 사용하여, 비정상적인 행위를 강제하게 하도록 하는 공격이며, 일반적으로 브라우저 측 스크립트 형태의 악성 코드를 다른 최종 사용자에게 보낼 때 발생한다. XSS 취약점은 OWASP TOP10에 매번 등록되는 취약점이다.
왜 발생 하는가?
- 사용자의 입력값이 웹 브라우저상에 노출되는 구간에서 사용자의 입력값을 검증하지 않고 신뢰하게되어, 각각의 XSS 공격 기법에 의해 웹 브라우저, 웹 애플리케이션, 백엔드 단에서 악성스크립트가 실행되고 이를 통해 쿠키, 세션 토큰 등 기타 민감한 정보에 엑세스 할 수 있게 되며, 이 외에도 다양한 공격 기법으로 연계될 수 있게 된다.
공격 방식
- 다양한 스크립트 언어가 있지만 현재 웹 상에서 대부분 독과점으로 사용되고 있는 JavaScript를 통해 공격이 이루어진다.
- 대부분 XSS 취약점을 식별 및 증명 하기 위해 alert, prompt, print등과 같은 함수를 사용하여 확인한다.
- 제3자가 볼 수 있는 환경에서 사용자의 입력값을 출력하거나, 입력값을 DataBases에 저장하며, 제3자가 입력값의 동적 컨텐츠를 볼 수 있다면 XSS 취약점을 테스트 해볼 수 있는 공격 표면이 된다.
XSS를 성공 시키기 위한 JavaScript 실행 방법
xss 를 성공 시키기 위해 사용되는 코드는 매우 다양하며, 각각의 조합과 필터링 우회를 위해 여러 조합을 통해 사용된다. 아래 4가지 방법은 가장 기본적인 xss 를 성공 시키기 위한 방법이다.
- <script>alert(1)</script>태를 통한 방법
- 스크립트 태그가 제헌될 경우 HTML 태그의 이벤트 핸들러를 통한 함수 실행
- EX) <img src=’’ onerror=alert(1)>, <input type=”button” onclick=alert(1)>, <svg onload=”alert(1)”> <svg><animatetransform onbegin=alert(1)>
- CSP 우회가 가능한 외부파일을 통한 자바스크립트 실행
- EX) <scirpt src=”javascript.js”<—경로></script>
- URL (Redirection) 이동 기능이 존재할 경우의 자바스크립트 실행
- EX) <a href=”javascript:alert(1)”>Hack</a>
XSS 공격의 유형

1. Dom-Based XSS
https://hg2lee.tistory.com/entry/Dom-Based-XSS#DOM-Based-XSS%EB%9E%80%3F-1
Dom-Based-XSS
DOM-Based-XSS란?DOM-Based-XSS는 Reflected xss와 유사하지만, 엄연히 다르다. 이 둘의 차이점은 DOM-Based의 경우 Relected 와 달리 입력 값을 통해 동적 웹 페이지를 구성 및 악성 스크립트가 실행되는 구간이
hg2lee.tistory.com
2. Reflected XSS
https://hg2lee.tistory.com/entry/Reflected-XSS
Reflected XSS
Reflected XSS란 무엇인가?Reflected XSS는 반사형 XSS로 사용자의 입력값을 받아 동적 페이지를 구성하는 환경에서 발생한다. DOM Based XSS 와의 큰 차이점은 DOM Based XSS는 브라우저단에서 입력값을 받아
hg2lee.tistory.com
3. Stored Based XSS
https://hg2lee.tistory.com/entry/Stored-Based-XSS
Stored-Based-XSS
Stored XSS란 무엇인가?Stored XSS는 사용자의 입력 값을 전달 받아 서버 데이터베이스에 저장한 후 해당 저장 값을 불러와 동적 페이지를 구성할 때 발생하는 취약점이다. 보통 게시글이나, 댓글 기
hg2lee.tistory.com
'Web > Web Hacking Techniques' 카테고리의 다른 글
ZIP Slip Vulnerability (0) | 2025.05.06 |
---|---|
Deserialize_Vulnability for Python_Pickle (0) | 2025.05.06 |
Stored-Based-XSS (0) | 2025.05.02 |
Reflected XSS (0) | 2025.05.02 |
Dom-Based-XSS (0) | 2025.05.02 |