[webhacking.kr] old-12 Write-Up

두비니

·

2022. 9. 3. 06:23

 

webhacking.kr old-12

Write-Up

 

 

01. 문제 분석

 

 

 

그렇다고 한다. 코드를 확인하도록 하자.

 

 

음.. 우선 딱봐도 javascript obfuscation인 것을 확인할 수 있다.

 

 

02. Solution

 

느낌상 jsfuck같은 류에서 custom으로 바꾼 것 같았다. 그래서 좀 찾아보니...

https://utf-8.jp/public/aaencode.html

 

aaencode - Encode any JavaScript program to Japanese style emoticons (^_^)

aaencode demo aaencode - Encode any JavaScript program to Japanese style emoticons (^_^) Enter JavaScript source: alert("Hello, JavaScript")

utf-8.jp

 

이걸 찾았다. 그리고 해당 페이지에서는 encoding만 지원을 해서 조금 더 찾아보니,,

https://lelinhtinh.github.io/de4js/

 

de4js

JavaScript Deobfuscator and Unpacker

lelinhtinh.github.io

 

이 사이트에서 aaencode를 decoding할 수 있었다. 

 

var enco = '';
var enco2 = 126;
var enco3 = 33;
var ck = document.URL.substr(document.URL.indexOf('='));
for (i = 1; i < 122; i++) {
    enco = enco + String.fromCharCode(i, 0);
}

function enco_(x) {
    return enco.charCodeAt(x);
}
if (ck == "=" + String.fromCharCode(enco_(240)) + String.fromCharCode(enco_(220)) + String.fromCharCode(enco_(232)) + String.fromCharCode(enco_(192)) + String.fromCharCode(enco_(226)) + String.fromCharCode(enco_(200)) + String.fromCharCode(enco_(204)) + String.fromCharCode(enco_(222 - 2)) + String.fromCharCode(enco_(198)) + "~~~~~~" + String.fromCharCode(enco2) + String.fromCharCode(enco3)) {
    location.href = "./" + ck.replace("=", "") + ".php";
}

 

여기서부터는 그냥 console을 통해 문제를 풀었다.

 

 

해당 문자열과 같을 경우 해당 이동하기 때문에, 나도 그렇게 했다.

 

'War Games > webhacking.kr' 카테고리의 다른 글

[webhacking.kr] old-13 Write-Up  (0) 2022.09.04
[webhacking.kr] old-11 Write-Up  (0) 2022.09.02
[webhacking.kr] old-10 Write-Up  (0) 2022.09.01
[webhacking.kr] old-9 Write-Up  (0) 2022.08.31
[webhacking.kr] old-8 Write-Up  (0) 2022.08.31