| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- 자바스크립트
- 독후감
- algorithmtraining
- 돈
- 프로그래밍언어
- 지혜를가진흑곰
- 성분
- algorithmTest
- 책알남
- C++
- 독서
- algorithmStudy
- 알고리즘트레이닝
- JavaScript
- Java
- 프로그래머스 알고리즘 공부
- 책을알려주는남자
- 알고리즘공부
- 주식
- C
- 투자
- 자바
- 경제
- 백준알고리즘
- 화장품
- 재테크
- 다독
- 서평
- 채권
- 알고리즘 공부
Archives
- Today
- Total
탁월함은 어떻게 나오는가?
Session-Hijacking (세션-하이젝킹) 본문
반응형
실습 계기
보안 공부를 하며, 세션 쿠키의 취약성을 직접 이해해보기 위해 진행했다. 해당 테스트를 진행하며 공용 와이파이, HTTP 환경 등에서 세션 탈취 위험이 존재함을 실제로 체감 할 수 있었다.
Session Hijacking 개념 정리
- 세션 기반 로그인 동작 방식 ( 로그인 > 서버가 Session cookie 발급 > 요청마다 쿠키 포함)
- 공격자는 세션 쿠키를 훔쳐서 로그인 상태를 위조할 수 있게 된다.
- 주요 공격 방식: Packet Snigging(패킷 도청), Cross-site scripting(XSS), Man-in-the-middle attack(중간자 공격) 등
핵심: 세션 쿠키(=Session ID, SID) 만 확보되면 비밀번호 없이 로그인 상태 재현이 가능하다.
코드 및 테스트 과정, 결과
1) 서버 코드 작성
|
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
|
import express from "express";
import cookieParser from "cookie-parser";
const app = express();
app.use(cookieParser());
const sessions = {};
// 로그인 시 쿠키 발급
app.get("/login", (req, res) => {
const sid = Math.random().toString(36).slice(2);
sessions[sid] = "userA";
res.cookie("SID", sid, { httpOnly: false }); // 의도적으로 httpOnly 비활성화
res.send("로그인 완료");
});
// 로그인 상태 확인
app.get("/me", (req, res) => {
const sid = req.cookies.SID;
if (sessions[sid]) res.send(`현재 사용자: ${sessions[sid]}`);
else res.status(401).send("로그인 필요");
});
app.listen(3000, () => {
console.log("서버 실행 중: http://localhost:3000");
});
|
cs |
2) SID 를 Application에서 쿠키 확인 할 수 있다.

3) 또는 Console에서 JS 문법으로 접근이 가능하다.

3-1) httpOnly: true 를 적용하면 JS에서는 접근 불가능 확인

4) 추출한 SID로 curl 명령어를 사용하면 로그인하지 않아도 정상적으로 출력되는걸 확인할 수 있다.

세션 쿠키 흐름도

깃허브 링크: https://github.com/akdl911215/Session-Hijacking-Test
반응형
'[Snow-ball]프로그래밍(컴퓨터) > 여러가지' 카테고리의 다른 글
| 깃허브 RUNNER 가 offline 되지 않도록 적용하는 명령어 (0) | 2025.11.08 |
|---|---|
| 실습으로 이해하는 SQL Injection: 취약점 재현과 안전한 코드 패턴 (0) | 2025.10.19 |
| nslookup 명령어 정리 (0) | 2024.09.12 |
| s3 awscli 사용을 위해 가상환경 활성화 방법 및 비활성화 방법과 aws config 방법 (0) | 2024.06.06 |
| 느려진 컴퓨터 손 쉽게 빠르게 되돌리는 방법 (0) | 2024.06.05 |
Comments