문제: http://suninatas.com/challenge/web05/web05.asp
어떤 form 하나가 있고 그 아래에 "Check Key Value"가 적혀있다.
어떤 key value를 확인하라는 걸까, 개발자 도구를 열어봤다.
가장 먼저 보이는 건 주석 처리된 힌트였다.
힌트는 12342046413275659 숫자열이었고, 이 값을 input에 입력해보았지만 아무일도 일어나지 않았다.
좀 더 도움이 될만한 걸 찾기 위해 소스를 살펴보다가 table에 숨겨진 script를 발견했다.
난독화가 되어 있는지 지금 상태론 무슨 코드인지 알아보기 힘들어보인다.
코드 난독화를 해제해보자. 아래 링크에서 코드 난독화를 해제할 수 있다.
그 결과 위와 같은 코드가 나왔다.
코드를 천천히 보면 PASS라는 함수는 숫자 n을 매개변수로 받는 것 같고, 이 값을 어떠한 처리를 거쳐서 digitArray에 접근할 인덱스로 만들어 준다. 해당 인덱스로 digitArray에 접근해서 result에 한 글자씩 추가하는데 이 과정을 총 8번 반복하는 것으로 보아 8자리의 string을 생성해서 반환하는 것 같다.
이때 아까 주석에서 힌트로 있었던 12342046413275659 숫자열이 생각났고 이 값을 PASS함수에 전달해주면 유의미한 값을 얻을 수 있을 것 같았다.
바로 JS를 실행시켜서 값을 얻어보니 예상대로 8자리의 string이 콘솔에 출력됐다.
이 값을 아까 문제 페이지의 input에 입력후 전달했다.
아래 링크에서 JS를 실행해볼 수 있다.
'Study > Web Hacking' 카테고리의 다른 글
[suninatas] Game 07 (1) | 2022.05.16 |
---|---|
[suninatas] Game 06 (1) | 2022.05.16 |
[suninatas] Game 04 (1) | 2022.05.10 |
[suninatas] Game 03 (1) | 2022.05.10 |
[suninatas] Game 02 (1) | 2022.05.10 |