JBU-CTF

[JBU-CTF 2022][web]JJ's doorbell(100)

seomj 2022. 10. 31. 12:20

문제

Treat or Trick! 친구 JJ의 집에 가서 사탕을 주지 않으면 장난을 쳐야지.. 흐흐흐

 

 

문제 취지

js 난독화를 알고 있는가

 

 

풀이

해당 링크로 접속하면 다음과 같은 화면이 나온다. 노크 버튼을 누르면 계속해서 숫자가 증가하게 된다.

 

F12를 통해 js 코드를 확인해보자.

function Knock(){
    var _0x51e8=["\x49\x27\x6C\x6C\x20\x67\x69\x76\x65\x20\x79\x6F\x75\x20\x74\x68\x69\x73\x20\x69\x6E\x73\x74\x65\x61\x64\x20\x6F\x66\x20\x63\x61\x6E\x64\x79\x2E","\x68\x72\x65\x66","\x2E\x2F\x63\x61\x6E\x64\x79\x2E\x68\x74\x6D\x6C"];if(cnt== 850){alert(_0x51e8[0]);location[_0x51e8[1]]= _0x51e8[2]}
}

해당 코드를 보면 Knock라는 함수를 확인할 수 있고 난독화가 되어 있지만 유의깊게 보면 끝에 if문을 확인할 수 있다.

이를 통해 850번의 노크가 필요하다는 것을 알 수 있다.

 

그래도 난독화를 해결해 본다면 이러한 코드가 나온다.

 

850번을 다 눌러줄 수 없으니 code에서 수정해서 해결해주자.

그렇다면 다음과 같은 경고창이 뜬다.

candy 대신 다른 것을 주겠다고 하며 다음과 같은 문자열을 알려준다.

이는 문제 제목에서 힌트를 주고 있다. JJ encode를 한 문자열이다. 즉, JJ decode를 해주어 해결할 수 있다.

 

 

플래그

scpCTF{H4ppy_h4ll0w33n_W1th_scp}

 

 

 

https://beautifier.io/

https://www.53lu.com/tool/jjencode/