R's Hacking Daily Log

XSS 본문

Daily-Note/web

XSS

hanhxx 2023. 4. 5. 15:48

XSS :: cross site scripting

XSS에서의 script는 javascript를 얘기한다. client & server가 통신하면서 web page에 대한 정보를 받으면 browser가 분석해서

client 쪽에 페이지를 출력해 준다.

 

web page에 대한 정보가 html 파일로 오면 해당 파일에서 사용된 css나 js 파일도 같이 들어있다.

그렇다 보니 javascript는 client side에서 실행된다고 할 수 있다.

 

 

Xss 공격이 가능한지 확인해 볼 때 사용하는 대표적인 js는 다음과 같다. 

<script>alert(1)</script>

위의 코드는 간단하게 " 1 "이라는 내용의 팝업창을 띄워라 하는 문구이다. 간단하게 확인차 사용하는 코드이다 보니

독립적인 js 파일로 작성하기보다는 script tag로 작성한다.

 

 

XSS는 공격자가 서버 어딘가에 악의적인 코드를 심어놓고 사용자가 이를 모르고 사이트에 접근했을 때

파일이 실행되면서 사용자의 컴퓨터에서 정보를 취득하는 공격 형태이다. 

 

 

CSRF 부분에서도 말했지만 XSS는 사용자의 컴퓨터, 사용자의 정보를 얻는 데에 초점을 두며

XSS 공격은 크게 두 가지 형태의 공격으로 구분할 수 있다.

 

 

Stored Xss & Reflected Xss

Stored Xss는 위에서 설명한 예시처럼 공격자가 서버 어딘가에 저장해 둔 js를 실행함으로써 사용자로부터

정보를 취득하는 것을 말한다. 

 

예를 들어 SNS처럼 게시물을 올리는 서비스가 있다고 할 때, A의 게시물에 공격자가 악의적인 코드를 심어뒀다고 상상해 보자. 

이때 A의 친구, B가 게시물을 보기 위해 클릭한다면, 그 순간 게시물과 관련된 정보가 공격자에게 전달되는 것이다. 

 

이렇듯 어딘가에 Script를 저장해 둔 형태의 XssStored Xss라고 한다. 

 

 

 

이와 달리 reflected xss는 이름에서 유추할 수 있듯이 "반사", 즉 요청을 날아갔다가 응답으로 돌아오는 형태의 XSS이다. 

예를 들어 검색 창에 "blueberry"라는 단어를 입력하면 blueberry라는 단어가 포함된 내용들이 주르륵 뜨는 걸 볼 수 있다.

 

 

이렇듯 입력된 값을 다시 한번 보여주는 부분에 js가 적용되어 공격자가 원하는 정보를 출력하도록 하는 것,

검색 엔진에서 요청으로 갔다가 응답으로 돌아오는 형태의 XSS를 Reflected Xss라고 한다. 

'Daily-Note > web' 카테고리의 다른 글

DVWA로 보는 간단한 CSRF 실습  (0) 2023.04.08
CSRF Defense  (0) 2023.04.08
CSRF Attack  (0) 2023.04.04
Cookie & Session & Token  (0) 2023.04.02
HSTS  (0) 2023.03.15
Comments