CTF : Steal info 2

DATE : 2024/1/11

Goal : Find a flag in mypage.php

이번 문제도 CTF : Steal info 1처럼 FLAG를 찾아내는 게 목표이다.

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

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

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

하지만 우리는 계정을 알아내는 게 아닌,

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

Step#1 : element 위치 파악

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

Step#2 : 스크립트 삽입

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

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

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

contentDocument로 mypage.php를 가져온 후에

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

Step#3 : 게시물 링크 전달

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

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

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

Step#4 : 공격자 서버 확인

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

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

Last updated