728x90
12번 문제에 접속해보면 다음과 같은 화면을 볼 수 있다.
페이지에 적힌 문구만해도 자바스크립트를 활용하여 해결할 수 있음을 알 수 있다.
문제 페이지의 소스코드를 확인해보았더니 아래 이미지와 같이 엄청나게 많은 이모티콘을 볼 수 있었고, 진짜 너무 많아서 당황스러웠다...
어떻게 해결해야할지 감이 안와서 구글링을 해보니 aaencode 암호화 방식을 활용했다고 한다
aaencode 암호화
자바스크립트를 이모티콘으로 바꿔주는 암호화 방식이며, 난독화 기법 중 하나이다.
암호화 사이트) https://cat-in-136.github.io/2010/12/aadecode-decode-encoded-as-aaencode.html
아래와 같이 aaencode 암호화 사이트에서 문제 페이지의 소스코드에 있는 이모티콘을 모두 복사해서 붙여 넣었더니
아래와 같은 코드가 출력되는 것을 볼 수 있었다.
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";
}
소스 코드를 확인해보니 뭔가 if문 부분 안쪽에 있는 내용을 넣으면 문제를 해결할 수 있을 것 같다!
해당 코드를 콘솔 창에 넣고
if 문 안에 있는 부분만 다시 실행해주니 'youaregod~~~~~~~!'이라는 문구가 출력되는 것을 볼 수 있었다.
출력된 문구를 주소창의 ?= 파라미터 뒤로 넣어주었더니
문제 해결!! 이번 문제에서는 자바스크립트를 이모티콘으로 바꿔주는 암호화 방식이 있는 것이 너무 흥미롭게 느껴졌다.
728x90
'CTF' 카테고리의 다른 글
[Webhacking.kr] old-28 write-up (0) | 2023.10.01 |
---|---|
[Dreamhack] image-storage write-up (1) | 2023.10.01 |
[RootMe] Javascript - Webpack (0) | 2023.09.23 |
[RootMe] Javascript - Authentication 2 (0) | 2023.09.23 |
[RootMe] HTTP - Cookies (0) | 2023.09.23 |