Web/Theory
Stored XSS
Alioth02
2024. 6. 13. 17:08
XSS 란?
- 클라이언트 측 공격 (피해자 : 이용자)
- 클라이언트 측 스크립트(HTML, CSS Javascript)를 삽입해서, 피해자의 웹 브라우저에 실행되게 만드는 공격
Stored XSS 특징
- 데이터가 저장되고, 출력되는 곳 (ex: 게시판 글 작성)
- 데이터가 저장되는 곳과 출력되는 곳이 다를 수 있음
- 서버에 흔적이 남음
Stored XSS 공격 절차
1. 작성한 데이터, 화면 응답 확인
게시판에 글을 작성하고
해당 게시글에 접속해보니
우리가 작성한 데이터가 출력되는 장소
즉, XSS 공격이 실행될 수 있는 장소임을 확인할 수 있었다.
2. 특수문자 필터링 체크
<' ">
XSS 공격에 필요한 특수문자가 필터링되고 있는지 체크하기 위해
게시글 본문에 특수문자를 적어서 업로드를 요청했다.
업로드된 게시글을 확인해보니,
모든 특수문자가 정상적으로 출력되고 있다.
즉, 모든 특수문자를 사용해 XSS 공격이 가능하다.
3. 스크립트 삽입
POC : Proof Of Concept
취약점을 이용한 공격이 가능하다는 것을 보여주는 시현 코드
Javascript POC Code
alert()
prompt()
confirm()
console.log()
게시글을 작성할 때,
본문에 자바스크립트를 이용한 POC 코드를 삽입해보았다.
이후 해당 게시글에 접속해보니,
우리가 입력한 'XSS_test'라는 alert 스크립트가 동작하는 모습을 볼 수 있다.