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의 값으로 아무값도 주지않으면 문제가 풀린다.
반응형