보안 전공생의 공부

[SuNiNaTaS] #5 | 자바스크립트 난독화 본문

Wargame/web

[SuNiNaTaS] #5 | 자바스크립트 난독화

수잉 2021. 1. 26. 23:03

페이지 소스코드를 확인해보았다

이렇게 12342046413275659 라는 힌트가 있다.

입력창에 그대로 입력해보면 아무런 변화가 나타나지 않는다.

이를 활용해서 풀어야되는 것 같다.

 

 

저번에 풀었던 문제처럼 난독화가 되어있다 !

jonnastudy.tistory.com/3

 

wargame.kr #6 fly me to the moon | javascript 난독화

start를 눌러주니 웬 게임창이 뜬다. 비행기가 형관선에 안 닿게 유의하면서 조종하여 점수가 31337점이 나와야 게임이 성공한다. javascript 구문을 우회하여 게임에 성공해야 되는 것 같다. ​ 소스

jonnastudy.tistory.com

 

▶ 자바스크립트 난독화

자바스크립트는 클라이언트(Client)에서 실행되도록 하는 언어여서 사용자가 웹사이트에 접근하게 되면 해당 스크립트를 그대로 볼 수 있게 된다. 이를 방지하고자 적용하는 기법이다.

(출처 : https://kkamikoon.tistory.com/165 )

 

이를 해독하는 사이트로 스크립트를 해독해보았다.

beautifier.io/ 처음에는 예전에 사용했던 이 사이트를 들어갔는데 해독이 잘 되지 않아 다른 사이트를 이용했다 !

www.strictly-software.com/unpack-javascript

 

Javascript Unpacker Tool - Strictly Software

This Javascript unpacker tool has now been upgraded to allow it to unpack multiple eval statements. So if your packed code has itself been packed a few times it will loop through until it finds the original source code. If you want to test this multiple ev

www.strictly-software.com

var digitArray = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
function PASS(n) {
var result = '';
var start = true;
for (var i = 32; i > 0;) {
i -= 4;
var digit = (n >> i) & 0xf;
if (!start || digit != 0) {
start = false;
result += digitArray[digit]
}
}
return (result == '' ? '0': result)
}

 

PASS라는 함수를 정의하고 있다.

변수 result를 리턴하고 있는데,

이 때 result는 digitArray를 어떤 패턴에 맞게 재배열한 것이다.

 

 

12342046413275659 라는 힌트를 여기에 이용하면 될 것 같다.

PASS함수의 매개변수 n값을 이 힌트로 주면 될 것 같다.

 

콘솔 창에 난독화를 해제한 소스코드를 입력하고,

n값이 주어진 힌트값인

PASS(123420464132756559)를 입력하였다.

 

그랬더니 9c43c20c 라는 값이 리턴되었다 !

이를 입력창에 입력하면 Authkey값이 나온다.

 


이번 문제는 저번에 풀었던 문제처럼 난독화 해제 관련 문제이다 !

그래서 쉽게 해결할 수 있었다 :)

콘솔창을 이용하는 이유, 난독화 힌트가 될 만한 문구에 대해 공부한 덕분에

큰 어려움이 없었다 !

혼자서 풀 수 있게 되어서 뿌듯하기도하고 신기하당

'Wargame > web' 카테고리의 다른 글

[Wargame.kr] #1 already got  (0) 2021.02.02
[XCZ.kr] #32 Easy Trick | PHP 비교 연산자 취약점  (0) 2021.01.27
[SuNiNaTaS] #6  (0) 2021.01.20
[SuNiNaTaS] #2  (0) 2021.01.20
N0Named Wargame [A] 입사테스트[2] | PNG와 APNG 구조  (0) 2021.01.15
Comments