XSS (Cross-Sit-Scripting) 공격
- 웹 애플리케이션의 취약점을 이용해 공격자가 악성 스크립트를 웹 페이지에 삽입하고, 사용자가 해당 페이지를 열람할 때 스크립트가 실행되도록 유도하는 공격
- XSS 공격을 통해 공격자는 사용자 쿠키/세션 값 탈취, 웹 페이지 내용 변조, 악성 코드 유포 등의 악성 행위 수행 가능
- 공격자는 메일, 게시판, 댓글, 검색어 입력 필드 등의 경로를 통해 악성 스크립트를 삽입-> 다른 사용자가 페이지를 방문할 때 스크립트 작용해 피해 초래
공격 방법
1. Stored XSS (저장형 크로스사이트스크립트)
: 악성 스크립트를 웹 서버에 영구적으로 저장하는 공격 방식
- 게시판, 댓글, 프로필 입력란, 회원가입 주소 창 등 사용자 입력이 저장되는 공간에 악성스크립트 삽입
- 한 번의 공격으로 불특정 다수의 사용자가 지속적으로 피해를 입을 수 있음
- 해커가 문자, 카톡 등에 피싱 뿌리고 1명이 누를 때까지 기다림
- 1개의 URL에서 실행
- 지속적
- Reflected XSS보다 공격 대상의 범위가 훨씬 큼
- 공격을 날리자마자 응답
2. Reflected XSS (반사형 크로스사이트스크립트)
: 웹 응용 프로그램의 지정된 변수를 이용할 때 발생하는 취약점을 이용하는 공격
- 악성코드를 URL 파라미터에 포함시켜 사용자가 특정 URL을 클릭하면 스크립트가 실행되도록 유도
- 이메일, 메신저, SNS에 링크 전송해 클릭 유도
- 비지속적
- 공격 -> DB저장 -> 글 읽을 때 악성스크립트 실행
3. DOM Based XSS (DOM 기반 크로스사이트스크립트)
: 서버를 거치지 않고 브라우저 자체에서 직접 실행되는 공격 (상호작용 X)
- 페이지에 포함되어 있는 브라우저 악성코드가 DOM 환경에서 실행됨
- DOM (Document Object Model, 문서 객체 모델) : 브라우저가 웹 페이지를 렌더링 하는데 사용하는 모델. HTML과 XML 문서에 접근하기 위한 인터페이스, 브라우저는 HTML문서를 읽고 해석한 결과를 DOM 형태로 재구성해 사용자에게 제공
- URL의 해시값, 쿠키, 로컬 스토리지 등 다양한 경로를 통해 공격 이루어짐
- 취약점을 발견하고 예방하기가 상대적으로 까다로움, 깊은 주의 필
대응 방안
- URL을 입력받지 않는 것
만약 입력받는다면 접속이 안되게 설정해야 함
- 입력값 필터링
XSS 취약점은 공격자가 삽입한 악성스크립트로 인해 발생하기 때문에 악성스크립트가 삽입되는 것을 방지해야 함
악성스크립트가 입력되어도 동작하지 않도록 출력값을 무효화 해야 함
악성 스크립트 삽입에 사용되는 특수문자를 HTML Entity로 치환하여 입력
문자 | < | > | ' | " | ( | ) |
Entity 치환 | < | > | " | ' | ( | ) |
- WhiteList 방식
: 허용할 태그를 선정해 해당 태그만 허용하는 방식
<p> <h1> <img> 등
- BlackList 방식
: alert와 같이 공격에 사용될 가능성이 있는 모든 문자열을 차단하는 방식
< . > 같은 꺽쇠도 필터링 가능
필터링 범위가 적어 우회 가능
- 대소문자 섞기
- 겹쳐쓰기 <scr<script>ipt> 에서 가운데 <script>가 사라지면 결국 <script> 실행됨
- img 태그 활용 <img src="dafafd" onerror = "alert('xss');/"> : 일부러 에러나게 설정해서 바로 실행되게
- 라이브러리 이용
- Lucy-XSS-Filter : WhiteList방식으로 공격을 방어하는 Java기반 오픈 소스 라이브러리
- OWASP ESAPI : OWASP에서 제공하는 무료 오픈 소스 라이브러리 - Java, Php등 언어 지원
[참고자료]
https://www.skshieldus.com/blog-security/security-trend-idx-06
'파이썬스터디' 카테고리의 다른 글
SKT 해킹 이슈 조사 - Ivanti VPN (3) | 2025.05.11 |
---|---|
PE 파일 생성 및 YARA 패턴 작성 실습 (2) | 2025.03.26 |
개인정보 국외 이전에 대한 개인정보보호법 위반 사례 - 카카오페이&알리페이 (1) | 2025.02.22 |
OWASP LLM Top 10 (2025) 각 취약점 예시, 대응 방안 (0) | 2025.02.07 |
Active Directory 취약점, 보안 사고 사례 (0) | 2025.01.21 |