Linux/모의해킹

웹 세션 Hijacking

GGkeeper 2022. 1. 21. 19:20

실습> 웹 세션 Hijacking

1. 세션 파일 정리
세션 디렉터리로 이동해서 세션 파일들을 모두 삭제한다.
[root@www ~]# cd /var/lib/php/session
[root@www session]# rm -f *

2. 관리자 로그인
admin으로 로그인한다.
id : admin
pw : 111111

3. 세션 파일 확인
[root@www session]# ll
합계 4
-rw-------. 1 apache apache 44  1월 21 17:45 sess_3sb11omajcdfuae26pu4qfuen3
[root@www session]# cat sess_3sb11omajcdfuae26pu4qfuen3 
userid|s:5:"admin";username|s:9:"관리자";

4. 시크릿 모드 활성화
브라우저에 시크릿 모드를 생성한다.
일반 모드의 브라우저와 시크릿 모드의 브라우저는 다르므로 세션을 쿠키로 저장했기 때문에
세션 디렉터리에서 확인해보면 2개의 세션 파일이 존재한다.
[root@www session]# ll
합계 4
-rw-------. 1 apache apache 44  1월 21 17:45 sess_3sb11omajcdfuae26pu4qfuen3  <-- 일반 모드
-rw-------. 1 apache apache  0  1월 21 17:49 sess_fd2atgt3eqnqjq062q28avjc45  <-- 시크릿 모드


5. 세션 값 수정
시크릿 모드에서 웹서버를 요청하고 일반 모드의 쿠키값을 시크릿 모드의 쿠키값으로 변조한다.
쿠키값을 변경하는 두 가지 방법
첫 번째 방법 : EditThisCookie 
두 번째 방법 : burp

EditThisCookie
- 일반 모드에서 쿠키값을 복사해서 시크릿 모드의 쿠키값으로 덮어쓴다.
수정 전 시크릿 모드의 쿠키값 : fd2atgt3eqnqjq062q28avjc45
수정 후 시크릿 모드의 쿠기값 : 3sb11omajcdfuae26pu4qfuen3

burp
Proxy → Option 탭 → 하위 "Match and Replace" 항목 → 
Add 클릭 → Type(Request header), 
Match(Cookie:공백*.*), Replace(Cookie:공백[피해자 Session Cookie]), Regex match 체크

Type : Request header
Match: Cookie: *.*
Replace: Cookie: PHPSESSID=3sb11omajcdfuae26pu4qfuen3

공격자가 세션을 탈취했다면 관리자의 권한을 행사하는 경우는 관리자가 로그인이 되어 있어야 한다. 
단 일반 모드에서 로그인한 사용자가 계속 로그인이 되어 있다는 가정에서...
관리자가 로그아웃을 하면 공격자도 로그아웃된 상태로 유지되기 때문이다.
이유는 로그아웃을 하면 session_destroy(); 함수에 의해서 세션이 파괴되기 때문이다.

'Linux > 모의해킹' 카테고리의 다른 글

stored XSS  (0) 2022.01.21
XSS 이용한 쿠키값 탈취  (0) 2022.01.21
session 이해하기  (0) 2022.01.21
터미널에서 로그인 / 로그아웃 분석하기  (0) 2022.01.21
세션 파일을 이용한 로그인 분석  (0) 2022.01.20