[CTF] DEF CON CTF 2024 Qualifiers - Gilroy

2024. 5. 9. 16:01정보보안/CTFLOG

반응형

Defcon 2024 Quals에 Friendly Maltese Citizens 라는 팀으로 참가하였다.

학교 생활 때문에 바쁜 와중 잠깐 짬을 내서 참여한 데프콘 예선에서 출제된 Gilroy라는 문제의 write-up을 작성했다.


문제 카테고리는 Web, Misc 로 생각하고 있고

컨셉은 게싱에 웹 로직을 활용해서 해결 할 수 있는 문제다. 

 

사이트에서 제공하는 기능을 나열해보자면

회원가입, 로그인, 쓰레드 작성, 쓰레드 댓글 작성, 회원 정보 확인 정도가 존재한다.

아래의 사진은 문제에 들어가면 보이는 화면이다

 

기본적으로 회원가입을 진행한 뒤에 쓰레드에 글을 작성하면 normal group으로 작성이 된다.

하지만, 작성된 글 리스트 맨 아래를 확인하면 admin 권한의 회원정보를 확인할 수 있는데, admin계정의 group은 admin으로 되어있음을 확인했다.

  • 해당 문제를 해결하려면 ? > admin 계정 획득 요구
  • admin group으로 가입을 시도하면? > 이미 admin 권한을 가진 계정이 존재하여 불가능하다고 알림

따라서 어떤 방법을 통해서 현재 admin 권한을 지닌 계정을 탈취해야하는데, 이는 쓰레드 작성을 이용하여 해결 할 수 있었다.  쓰레드에 글을 작성할 때 글 카테고리에 맞는 gif를 선택 할 수 있었는데, 이때 특정 gif에 대해서는 시스템이 자동을 해당 계정을 밴 해버린다.

 

이와 동시에 index.php에서 글 목록에 poster 라는 열에 작성자 명을  띄워주는데 이를 잘 활용해서 normal group 계정으로 글을 작성하지만 admin group의 계정으로 적은 것처럼 시스템을 속일 수 있는 로직이 있었다.

 

바로 poster_id라는 파라미터를 사용하면 그렇게 되는데, 회원 정보 페이지에서 획득 가능한 정보로는 

  1. user_id
  2. name
  3. group

이렇게 총 3가지 였다.

 

글 작성 시 poster 정보는 user_id를 활용하여 표시해준다는 것을 알게 되었고, 

글 작성 시에 &poster_id라는 파라미터를 추가적으로 작성하여 admin 계정의 user_id를 넣어주었더니 기존에 존재하는 admin 계정을 banned 시킬 수 있었다.

 

이제 admin 계정이 banned 상태가 되어 새로 admin group으로 계정을 생성해도 문제가 없다.

 

admin 계정을 생성하고 로그인 하면 다음과 같이 기존 normal 계정에서는 보이지 않던 버튼이 생겼다.

 

admin.php에 접속하게 되면 flag가 주어진다.

반응형

'정보보안 > CTFLOG' 카테고리의 다른 글

[CTF] Dice-ctf write up  (0) 2024.02.03
[CTF] insomni'hack Teaser 2024  (0) 2024.01.21
[CTF] uoftctf-2024  (0) 2024.01.17
[CTF] Wacon 2023 ( junior division )  (0) 2023.09.05
[CTF] SSTF 2023  (0) 2023.08.20