본문 바로가기
정리/web hacking

[web] Cross Site Scripting (XSS)

by 멘멘 2023. 5. 21.

Cross Site Scriptine (XSS)

클라이언트 사이드 취약점 중 하나. 공격자가 웹 리소스에 악성 스크립트를 삽입해 이용자의 웹 브라우저에서 해당 스크립트 실행. 공격자는 해당 취약점을 통해 특정 계정에 세션 정보를 탈취하고 임의의 기능을 수행할 수 있음.

 

종류설명

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

주로 자바스크맂트가 공격에 사용됨

 

Stored XSS

서버의 데이터베이스 또는 파일 등의 형태로 저장된 악성 스크립트를 조회할 때 발생하는 XSS. 

게시물과 댓글에 스크립트를 포함해 업로드하는 방식.

 

Reflected XSS

서버가 악성 스크립가 담긴 요청을 출력할 때 발생. 

이요자가 게시물을 검색했을 때 검색 문자열에 악성 스크립트가 포함되어 있다면 Reflected XSs가 발생할 수 있음

Stored XSS와 달리 이용자의 요청에 의해 발생함.

이용자에게 악성스크립트가 포함된 링크에 접속하도록 유도하기 위해 Click Jacking이나 Open Redirect 등 다른 취약점과 연계

 

퀴즈

더보기

퀴즈

1) xss 취약점이 발생하는 곳 : 클라이언트 + 서버

2) 공격스크립트가 서버 내에 존재하는 데이터베이스 또는 파일 등으로 저장되어 있다가 이용자가 공격 스크립트를 조횐하는 순간 발생하는 형태의 xss : Stored XSS

3) 이용자의 요청에 악성스크립트가 포홤되는 xss : reflected XSS

문제 풀이

더보기

문제풀이

xss-1

<script>location.href="/memo?memo="+document.cookie;</script>

위 코드를 flag 페이지에 작성하여 cookie 값을 memo 페이지에 띄울 수 있었따.

 

xss-2

<script>로의 사용은 불가하여서 <img> 태그를 이용하여 쿠키를 얻어냈다!

댓글