5번 문제를 확인해 보니 키 값을 확인하라는 문장과 함께 입력폼 하나가 보였다. 일단 이 입력폼에 아무 값이나 입력을 해 보았는데 값이 전달되는 느낌은 들지만, 아무런 변화가 생기지 않았다. 소스코드를 한 번 확인 해 보기로 하고, <F12> 개발자 도구에서 소스코드를 확인해 보았다.
소스코드를 확인해 보니 중간에 <script></script> 태그 안에 jsp의 eval()함수와 함께 소스코드가 읽기 힘들게 되어있었다. 이렇게 소스코드가 어렵게 되어있는데 잘 몰라서 구글링을 해보니까 jsp가 난독화가 되어진거라고 했다. 여기서 eval()함수는 문자열을 자바스크립트 코드로 인식하여 실행을 해주는 함수이다. 이를 이용해서 코드를 분석하기 어렵게 난독화를 만들기도 하는데 여기에서는 eval 함수가 이 난독화 된 문자열을 자바소스코드로 변환해 주는 역할을 하고 있다.
이 소스코드를 언패킹 해주는 사이트는 많은데 구글링을 해보면 쉽게 찾을 수 있다. 그리하여 이를 이용하여 소스코드를 언패킹해보면 이런 소스코드가 나온다.
언패킹 된 소스코드를 복사하여 < F12 >개발자도구를 이용하여 콘솔창에 들어가서 소스코드를 붙여 넣었다.
소스코드를 대강 살펴보면 PASS라는 함수를 선언되어있는 것을 확인했다. 이 함수에 인자값으로 무엇을 넣어주어야 할지 고민하다가 아까 소스코드를 볼 때 힌트가 주석 처리가 되어있던 것을 떠올렸다.
그리하여 PASS(n)에서 n값으로 힌트값을 넣어보니까 값이 출력되는 것을 확인하였다.
이 값을 복사하여 입력폼에 넣어주었더니 원하는 Authkey값이 나왔다.
'Write-up > Suninatas' 카테고리의 다른 글
써니나타스[Suninatas] web 4번 문제 (write-up) (0) | 2019.08.03 |
---|---|
써니나타스 [Suninatas] web 3번 문제 (write-up) (0) | 2019.08.03 |
써니나타스 [Suninatas] web 2번 문제 (write-up) (0) | 2019.08.02 |
써니나타스 [Suninatas] web 1번 문제 (write-up) (0) | 2019.08.02 |