파이썬스터디

XSS (크로스 사이트 스크립팅) - 모의해킹

0v0k 2025. 4. 9. 01:28

XSS (Cross-Sit-Scripting) 공격

- 웹 애플리케이션의 취약점을 이용해 공격자가 악성 스크립트를 웹 페이지에 삽입하고, 사용자가 해당 페이지를 열람할 때 스크립트가 실행되도록 유도하는 공격

- XSS 공격을 통해 공격자는 사용자 쿠키/세션 값 탈취, 웹 페이지 내용 변조, 악성 코드 유포 등의 악성 행위 수행 가능

- 공격자는 메일, 게시판, 댓글, 검색어 입력 필드 등의 경로를 통해 악성 스크립트를 삽입-> 다른 사용자가 페이지를 방문할 때 스크립트 작용해 피해 초래

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 치환 &lt; &gt; &quot; &#x27; &#40; &#41;
  • 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

https://www.skshieldus.com/download/files/download.do?o_fname=EQST%20insight_Special%20Report_202210.pdf&r_fname=20221017111358785.pdf