관리 메뉴

HeeJ's

Guess me :: HackCTF/Web 본문

<CTF>/<HackCTF>

Guess me :: HackCTF/Web

meow00 2021. 4. 1. 23:50

 

 

문제 화면

 

문제 화면을 열면 php 코드가 들어있는 것을 확인할 수 있다.

 

 

모르는 함수가 있어서 찾아보았다.

 

- trim() : 문자열 맨 앞과 맨 뒤의 공백을 제거한다.

- file_get_contents()

   ex. <?php

         $homepage = file_get_contents('http://www.example.com/');

         echo $homepage;

         ?>

   -> 웹사이트에 있는 전체 파일을 문자열로 읽어들이는 php 함수

- isset() : 들어있는 값이 NULL이 아님을 의미 (변수가 설정되었는지 확인)

 

 

 

코드를 해석해보면,

1. guess 변수에 값이 있으면 filename 변수에서 파일 문자열을 읽어들인 것을 $secretcode 변수에 넣는다.

2. $guess와 $secretcode 값이 같으면 flag.txt를 출력해준다.

 

filename 변수와 guess 변수의 내용을 조작해서 문제를 해결할 수 있다.

 

어떻게 값을 전달해줄까 하다가, 입력 폼에 아무 값이나 넣어보았다.

GET 방식으로 입력된 값이 $guess에 들어가는 것을 확인할 수 있다.

(코드 3번째 줄에서도 확인 가능)

 

GET 방식을 이용해 URL에 $filename과 $guess의 내용을 조작하면 된다.

 

 

그렇다면 $filename과 $guess에 들어가야 할 값은 무엇일까?

 

두 변수값에 모두 NULL을 넣게 된다면,

$guess 도 false, $filename도 false가 되어 if문이 true가 될 것이다.

 

 

flag를 획득했다.

 

'<CTF> > <HackCTF>' 카테고리의 다른 글

Read File :: HackCTF/Web  (0) 2021.04.02
보물 :: HackCTF/Web  (0) 2020.11.20
Button :: HackCTF/Web  (0) 2020.11.20
Hidden :: HackCTF/Web  (0) 2020.08.06
/ :: HackCTF/Web  (0) 2020.08.06