Natas Level 8 입니다.
Level 8 메인 페이지 입니다.
특정 비밀번호를 입력해야 하는 듯 합니다.
오른쪽 View sourcecode를 눌러봅시다.
페이지 소스코드 입니다. PHP로 코드가 짜여있네요. 자세히 봐볼까요?
encodedSecret 변수에 특정 문자열이 저장되어 있고
encodeSecret 이라는 함수가 선언되어 있네요.
encodeSecret 함수는 secret변수의 값을 base64인코딩, 문자열뒤집기, 16진수 변환 과정을 거쳐 해당 값을 리턴하고 있습니다.
그 밑에 if문은, 사용자가 입력한 값을 똑같이 인코딩,뒤집기,변환을 한 후 secret값과 대조하여
일치할 경우 password를 출력하게 되어 있네요.
변수 encodedSecret 값이 선언되어 있고 값까지 초기화 되어 있는것을 보니, 이 값이 encodeSecret 함수의 리턴값인 것 같아 보이네요. 만약 맞다면, 저 값을 반대로 변환하면 secret을 획득할 수 있을 것 같습니다.
반대로 변환이라 함은,
이걸 똑같이 반대로 한다는 겁니다.
저걸 풀어보자면,
secret을 base64로 인코딩 -> 문자열뒤집기 -> 16진수로 변경
이렇게 됩니다. 이걸 반대로 해봅시다.
첫번째.
16진수를 문자열로 변경.
==QcCtmMml1ViV3b
두번째.
해당 값을 반대로 뒤집습니다.
b3ViV1lmMmtCcQ==
세번째.
base64로 디코딩 하였습니다.
인코딩의 반대는 디코딩이죠.
"oubWYf2kBq" 이라는 값을 획득했습니다. 이게 과연 secret 변수의 값일까요?
이걸 input secret에 입력해 봅시다.
제출을 눌러줍시다.
password를 획득하였습니다.
간단한 암호화를 거친 문자열을 복호화하는 문제였군요.
변환과정들은 google에 검색하면 무료 사이트들이 많으니 이용하시면 되겠습니다.
'Hacking > [Web]Natas' 카테고리의 다른 글
OverTheWire [Natas Level 10] (0) | 2023.03.15 |
---|---|
OverTheWire [Natas Level 9] (0) | 2023.03.13 |
OverTheWire [Natas Level 7] (0) | 2023.03.10 |
OverTheWire [Natas Level 6] (0) | 2023.03.10 |
OverTheWire [Natas Level 5] (0) | 2023.03.10 |