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에 넣어서 제출하면 비번이 뜬다.
'overthewire.org' 카테고리의 다른 글
[OverTheWire.org_natas] level 9 -level 10 (natas11 password) (0) | 2022.01.27 |
---|---|
[OverTheWire.org_natas] level 8 - level 9 (natas10 password) (0) | 2022.01.27 |
[Overthewire.org_natas] level 6 - level 7(natas8 비번 구하기) (0) | 2022.01.26 |
[Overthewire.org_natas] level 5 - level 6(natas7 비번 구하기) (0) | 2022.01.24 |
[Overthewire.org_Natas] level 3 - level 4 - level 5(natas5, 6 비번 구하기) (0) | 2022.01.24 |
댓글