Web/Write-up

HackCTF-Guess me

zooonique 2019. 10. 25. 03:06
반응형

 

이 문제를 정리하는 이유는 extract 함수와 file_get_contents 함수를 간단히 정리하기 위해서이다.

 

extract함수는 배열속에 있는 키값을 변수화 시켜주는 함수이다.

extract함수는 $_GET이나, $_FILES와 같은 신뢰할 수 없는 데이터와 사용하면 취약할 수 있다.

원하는 값을 GET인자로 전달해줘서, 그 값을 바꿀 수 있기 때문이다.

 

이 문제에서 'secret.txt'라는 값을 갖는 $filename이 있다.

내가 $guess로 넣어준 값과 $filename 안에 있는 내용 즉, secret.txt의 내용이 같으면 flag를 출력해준다.

(file_get_contents함수는 인자로 받는 파일의 내용이다.)

하지만 우리는 secret.txt에 무슨 내용이 있는지 알리가 없다.

그래서 $filename을 임의의 이름으로 바꿔준다.

그 결과 임의의 이름으로 바꾼 file은 존재하지 않으므로 trim(file_get_contents($filename))은 아무것도 없을것이다.

마지막으로 $guess의 값으로 아무값도 주지않으면 문제가 풀린다.

반응형