※레벨에대한 정확한 비밀번호를 알려드지는 않습니다. 힌트와 해결과정을 포스팅하려고합니다.
※스스로 풀어보시기를 권합니다.
문제 분석
↑ 특별한 힌트없이 입력폼만 주어져있다.
# 입력폼에 임의의 글을 입력했을 때 'Wrong secret'이라는 문구가 나온다.
# 이러한 문구로보아 올바른 Secret의 입력을 요구하는 문제로 유추해 볼 수 있다.
↑ 우측 하단의 " View Sourcecode "를 통해 소스코드를 볼 수 있다.
<?
include "includes/secret.inc";
if(array_key_exists("submit", $_POST)) {
if($secret == $_POST['secret']) { // 입력폼에 입력한 값과 변수 $secret과 비교
print "Access granted. The password for natas7 is <censored>"; // 참일 시 natas7에 대한 정보 반환
} else {
print "Wrong secret"; // 거짓일 시 "Wrong sercret "문구 반환
}
?>
해결 과정
문제를 해결하기 위해서는 입력값이 변수 $secret와 같아야하는데 소스코드를 샅샅이 찾아봐도 $secret이 정의되어있지
않다. 여기서 주목해야 할 것은 해당 소스코드에서 변수 $secret를 찾는것이 아니라, include함수를 통해 변수 $secret을
가져오고 있다는 점을 알아채야한다.
↑ include통해 외부의 파일을 호출할 수 있다.
PHP에는 파일 작성시에, 외부 파일을 포함하기 위해 사용되는 4가지 함수
ㆍinclude()
ㆍrequire()
ㆍinclude_once()
ㆍrequire_once()
↑ include된 파일에 접근하면 변수 $secret에대한 정보를 얻을 수 있다.
↑ 문제해결
natas6의 중점
ㆍphp에서 include가 어떻게 쓰이는지 알아야한다.( 용도, 쓰임,.. )
ㆍinclude를 제외한 같은 기능의 함수가 있는지 알아본다. ( require, include_once,..
OverTheWir: Natas5 (0) | 2017.06.16 |
---|---|
OverTheWir: Natas3 (0) | 2017.02.13 |
OverTheWir: Natas2 (0) | 2017.02.13 |
OverTheWir: Natas1 (0) | 2017.02.13 |
OverTheWir: Natas0 (1) | 2017.02.13 |
좀 알려주세요 현기증 난단 말이에요..