본문 바로가기

모의해킹/Dreamhack

funjs

728x90

문제 정보
메인 페이지

입력하는 부분이 계속 시간이 지날 때마다 움직인다.

여기 문제는 소스파일은 따로 없다,,,

 

개발자 모드

개발자 모드에 들어가니 <head> 안에 <script>가 작성이 되어있다.

스크립트 코드가 난독화 되어 있다,,,,,하나씩 분석해 보자.!

 

    var box;
    window.onload = init;
    // 초기화 하는 부분
    function init() {
      box = document.getElementById("formbox");
      여기에서 밑에 함수 호출
      setInterval(moveBox,1000);
    }
    // 여기가 입력하는 공간 움직이는 곳!
    function moveBox() {
        box.posX = Math.random() * (window.innerWidth - 64); 
        box.posY = Math.random() * (document.documentElement.scrollHeight - 64); 
        box.style.marginLeft = box.posX + "px";
        box.style.marginTop  = box.posY + "px";
        debugger;
    }

이렇게 푸는 것보다 분기점인 IF문을 찾아 분석을 해보자..!

 

if (flag[_0x374fd6(0x17c)] != 0x24) {
            text2img(_0x374fd6(0x185));
            return;
        }
for (var i = 0x0; i < flag[_0x374fd6(0x17c)]; i++) {
    if (flag[_0x374fd6(0x176)](i) == operator[i % operator[_0x374fd6(0x17c)]](_0x4949[i], _0x42931[i])) {} else {
            text2img(_0x374fd6(0x185));
            return;
        }
    }
    text2img(flag);

개발자 도구를 통해 분석해 보자.!

개발자 도구

if문에 브레이크 포인트를 걸고 Console 창에 입력을 했을 때, _0x374fd6(0x17c) 는 length함수인걸 확인할 수 있다.!

0x24는 36이다. 즉, flag 길이가 36이 아니면 if문이 실행이 된다는 것이다.

그다음 if문을 확인해 보자.!

 

flag값이 operator랑 비교를 해서 맞으면 if문이 실행이 되기 때문에 operator가 뭔지 알기 위해 console 창을 이용해 코드를 작성했더니 많은 숫자들이 출력이 되었다,,,!

 

숫자를 문자열로 변경을 하니까 flag 값이 출력이 되었다,,,?!

'모의해킹 > Dreamhack' 카테고리의 다른 글

crawling  (0) 2023.11.15
Tomcat Manager  (0) 2023.11.14
weblog-1  (0) 2023.11.11
login-1  (0) 2023.11.09
SSTI(취약점 개념)  (0) 2023.11.09