# CTF : Steal info 2

## :exclamation:Goal : Find a flag in mypage.php

이번 문제도 [ctf-steal-info-1](https://hh-rys-log.gitbook.io/normaltic/11-1-10/assignment/ctf-steal-info-1 "mention")처럼 FLAG를 찾아내는 게 목표이다.&#x20;

저번 문제에서는 관리자의 프로필 페이지에서 정보를 탈취했다면 이번엔

ADMIN의 마이페이지에 있는 flag를 탈취해야 한다.&#x20;

당연한 말이지만 flag를 얻기 위해선 ADMIN 계정이 필요하다.

하지만 우리는 계정을 알아내는 게 아닌,&#x20;

XSS를 통해 admin이 직접 공격자 서버로 flag를 보내주도록 만들 것이다.

### Step#1 : element 위치 파악

<figure><img src="https://2861100003-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9PiiqEcal3M7lZTt5EVZ%2Fuploads%2F8yJTJF136743leLRT6yl%2FSCRIPT%20CTF_6.png?alt=media&#x26;token=9e527235-06b1-418f-b8aa-4525473fe221" alt=""><figcaption></figcaption></figure>

일단 마이페이지 구조는 모든 사용자에게 동일하기 때문에 flag가 있을 위치를 파악해두도록 하자.&#x20;

### Step#2 : 스크립트 삽입

이번 문제도 게시물 본문에 취약점이 존재하기 때문에 아래와 같이 스크립트를 작성한다.

<figure><img src="https://2861100003-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9PiiqEcal3M7lZTt5EVZ%2Fuploads%2FXDWhAsI8ELeBGj7D0Ojf%2FSCRIPT%20CTF_10.png?alt=media&#x26;token=931408c4-8f53-4721-814f-ee7657d75aba" alt=""><figcaption></figcaption></figure>

admin이 이 게시물에 접속했을 때, 공격자에게 보내줄 flag는 마이페이지에 들어있기 때문에&#x20;

iframe으로 가져올 외부 페이지 경로에는 mypage.php를 적어준다.&#x20;

contentDocument로 mypage.php를 가져온 후에&#x20;

앞에서 파악해둔 element 위치로 접근해 flag를 secret 변수에 담아주면 끝이다.&#x20;

### Step#3 : 게시물 링크 전달

<figure><img src="https://2861100003-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9PiiqEcal3M7lZTt5EVZ%2Fuploads%2Fro1DuROApMz0SiNs2V77%2FSCRIPT%20CTF_9.png?alt=media&#x26;token=280077fe-8384-4b4f-82fd-892cb690507c" alt=""><figcaption></figcaption></figure>

스크립트를 작성해둔 게시물 주소를 admin에게 전달하면&#x20;

admin 계정의 사용자가 mypage.php를 게시물 페이지로 가져오는 것이기 때문에&#x20;

권한 제한에는 문제 없이 flag를 얻을 수 있게 되는 것이다.&#x20;

### Step#4 : 공격자 서버 확인

<figure><img src="https://2861100003-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9PiiqEcal3M7lZTt5EVZ%2Fuploads%2FIgd6LrB5j741CLmOTbsP%2FSCRIPT%20CTF_11.png?alt=media&#x26;token=5cf68d9b-cafa-44c3-84f6-19e7d6993747" alt=""><figcaption></figcaption></figure>

마지막으로 공격자 서버를 확인하면!

ADMIN이 보내준 FLAG를 볼 수 있을 것이다. :thumbsup:
