R's Hacking Daily Log

Natas8 본문

OverTheWire/Natas

Natas8

hanhxx 2022. 12. 1. 11:12

http://natas8.natas.labs.overthewire.org

 

익숙한 페이지의 모습..

이번에도 input과 관련된 문제인 듯하다.

 

 

정보수집부터 해보자! View source code 클릭

(흠. 이번엔 보기 좋게 색깔을 입혀놨군)

이전 문제보다 코드가 조금은 복잡한 느낌이다. 

 

 

주목해야 할 부분은 여기

제출 버튼을 누르면 입력된 값과 Post array의 secret key에 대한 값을 비교. 

두 값이 동일하면 natas9의 passwd가 제공되는 방식이다. 

 

POST array에서 secret 키가 갖는 값이 뭔지 모르지만, 여기서 $encodedSecret값을 대놓고 적어놓았다!

fuction encodedSecret을 보면, $secret값을 이렇게 저렇게 요리조리 해서

반환한 값을 if문에서 $encodedSecret과 비교하게 된다.

 

 

그렇다면, input에 입력해야 할 secret 값을 얻기 위해서 function의 흐름을 반대로 실행하면 된다!

encodedSecret == bin2hex(strrev(base64-encode(secret)))이므로 secret을 얻기 위해서는

1. hex2bin (hex-> string)
2. strrev (string array reverse)
3. base64_decode (base64형식으로 decode)

$encodedSecret의 값을 hex2bin 처리하면 문자열이 나올 것이다.

그 문자열을 strrev 처리하면 단순히 문자의 순서가 뒤집힌다. (ex. apple -> elppa)

뒤집은 문자열을 base64 decode 해주면 input에 입력해야 할 secret값이 나오게 되는 것!

 

 

그대로 해봤더니, secret 값이 

oubWYf2kBq

이렇게 나왔다. 

 

 

바로 input에 집어넣어~

제출 버튼을 눌러보니

 

 

natas9의 password가 나온 것을 볼 수 있다.

'OverTheWire > Natas' 카테고리의 다른 글

Natas7  (0) 2022.12.01
Natas6  (0) 2022.12.01
Natas5  (0) 2022.12.01
Natas4  (0) 2022.12.01
Natas3  (0) 2022.11.30
Comments