본문 바로가기
정보보안/Web Hacking

모의해킹 문제풀이 - 5번(답 포함) - 써니나타스(SuNiNaTaS) // JavaScript, Packer

by 우동이 2022. 2. 3.
300x250

문제 분류


난이도 : 하

 

 

 


문제사이트에 접속하면

"Check Key Value"라는 메시지와 텍스트 입력 상자만 있다.

힌트가 없으니 F12[개발자도구] 를 통해 소스를 확인해보자

체크해야하는 키 값이 힌트에 나열된 숫자값인듯 하다

ㅋㅋㅋ 값 그대로 넣었으나 당연하게도 안됨...

해시도 아닌거같고,, 난수도 아닌거같고

도무지 뭘 하라는지 모르겠어서 소스코드를 뒤져봤다.

코드내에 자세히 살펴보면 p,a,c,k,e,r 이라는 단어가 있다

사실 자바스크립트가 생소해서 저 단어를 보고도 뭔지 몰랐는데 

자바스크립트의 기능중에 패커라는 기능으로 소스코드를 축소함과 동시에 보호하기 위한 기능이라고 한다.

 

즉 위에 packer라는 문자열이 들어간 코드는 패킹된 코드로 보호되어야 하는 소스코드라는 의미니

저 코드를 언패킹하면 답이 보일듯하다.

 

원래 딘 에드워드가 개발한 패커를 사용했었는데 2022년 2월 기준으로 접속이 안된다.. 왜지?

 

 

Unpack Javascript - Strictly Software

// Create a get elements by class name function document.getElementsByClassName = function(clsName){ var retVal = new Array(); var elements = document.getElementsByTagName("*"); for(var i = 0;i < elements.length;i++){ if(elements[i].className.indexOf(" ")

www.strictly-software.com

대신 위에서 언패킹을 진행했다.

언패킹해보면 위와 같은 코드가 나온다.

그리고 script문 내에 PASS라는 함수가 생성되어있다.

사실 자바스크립트 이해도가 낮아서 

코드를 봐도 무슨 뜻인지 이해가 가지는 않는데

16진수로 자체 제작된 암호화 코드일듯한 느낌

아무튼

 

개발자도구 콘솔에서 PASS 함수에 힌트에 적혀있던 값을 넣어보니

위와 같이 복호화된 값이 출력되었다.

 

그 키값을 입력하니 인증키가 출력되었다.

 

문제는 자바스크립트의 패킹에 대해 알아야 풀수있는 문제

그러려면 어느정도 언어에 대해 숙련도가 있어야 할듯

공부좀 해야겠다.

 

 

 

 

 

 

 

300x250

댓글