View Source Code를 클릭해보자
<?
로 시작해서 ?>
로 끝나는 PHP 코드가 보이는데 PHP 코드는 서버 사이드 코드로 일반적인 소스코드로는 보이지 않는다. 따로 힌트를 주기 위해 소스코드에 올려놓은 것으로 보인다.
includes/secret.inc
를 include
를 통해 참조하여 $POST
방식으로 $secret
의 값과 secret
의 값을 비교하여 같다면 암호를 알려주는 것으로 생각된다.
secret
의 값은 includes/secret.inc
에 정보가 있을 것이다.
includes/secret.inc
디렉토리에 들어가보니 secret
의 값을 알게 되었고 그 값을 첫번째 사진의 Input secret: 블록에 제출해보자.
7레벨로 가는 암호를 얻을 수 있었다.
점점 문제가 싸가지 없어진다
Link 2개만 있으니까 일단 열어봐야겠다.
Home
링크를 탔을 때, this is the front page라는 문구가 나온다.
About
링크를 타면, this is the about page라는 문구가 나온다.
주소를 보면 /index.php?page=
뒤에 페이지 이름이 나오는데 Home과 About은
소스코드를 열어보면 힌트가 있었다. /etc/natas_webpass/natas8 안에 8레벨의 암호가 있는 것일 것 같다.
PHP에 디렉토리를 연결해서 다음 레벨의 암호를 얻을 수 있었다.
View Sourcecode링크를 타면 위 화면이 나온다.
6레벨과 유사하게 PHP 코드가 힌트일 것이다.
$encodeSecret
의 값이 보이고
return bin2hex(strrev(base64_encode($secret)));을 연산하는 함수가 있다.
POST방식을 통해 넘겨받은 secret값이 encodeSecret함수에 넘겨진다.
넘겨진 값을 위 3d3d
어쩌고 하는 값과 비교하여 해당 값이 같다면, 9레벨의 암호가 나올 것 같다.
PHP 컴파일 환경에서 작업을 해야한다.
위 값을 decode한 후 bin2hex를 hex2bin으로 변환해 역연산하면 oubWYf2kBq
라는 값을 얻을 수 있었다.
이 값을 Input란에 넣으면
다음 레벨의 값을 얻을 수 있었다.
정말 좋은 글 감사합니다!