본문 바로가기
overthewire.org

[Overthewire.org_natas] level 7 - level 8 (natas9 password)

by MININI 2022. 1. 26.

natas8 페이지를 들어가 보면, 이렇게 secret을 제출하는 칸이 나오는데

 

뭘 제출하는 건지 모르니 view sourcecode를 눌러 코드를 한번 봐보자.

그러면 개발자도구에서는 보이지 않았던 저 부분을 볼 수 있다.

 

코드를 해석해 보자.

 

function encodeSecret($secret)

: 파라미터로 받은 $secret값을 base64_encode, strrev, binwhex를 순서대로 하여 그 값을 반환한다.

 

bin2hex(문자열) = ASCII문자열을 16진수로 변환
strrev(문자열) = 문자열 뒤집기
base64_encode(문자열) = 문자열을 2진 데이터로 변환한 뒤, ASCII형태로 변경

 

그 밑에 if문은 간단히 보면 내가 제출한 값을 (secret) encodeSecret()의 파라미터로 넣은 값

(= 내가 제출한 값에 base64_encode, strrev, binwhex을 순서대로 한 값)과 $encodedSecret의 값이 같으면 natas9의 비번 띄워주겠다는 내용.

 

그렇다면 우리가 입력해야 하는 값을 어떻게 구할 수 있을까?

base64_encode, strrev, binwhex를 $encodedSecret에 반대 순서로 해주면 된다.

 

나는 온라인 php editor를 사용했다.

했더니 우리가 넣어야 할 secret값이 구해졌다.

이 값을 secret에 넣어서 제출하면 비번이 뜬다.

댓글