이 영역을 누르면 첫 페이지로 이동
caputdraconis 블로그의 첫 페이지로 이동

caputdraconis

페이지 맨 위로 올라가기

caputdraconis

네트워크 관점에서의 클라우드 컴퓨팅을 공부하는 중입니다 :)

[root-me.org - Web-Client] Javascript - Obfuscation 1

  • 2020.09.14 03:12
  • Security/WebHacking
글 작성자: caputdraconis
반응형

챌린지를 시작하자마자 비밀번호를 입력하라는 칸이 나오고 일정시간 후에 끝나버린다. 그 끝나버린 창에서 소스코드를 봐보았다.

 

 

<html>
    <head>
        <title>Obfuscation JS</title>

          <script type="text/javascript">
              /* <![CDATA[ */

              pass = '%63%70%61%73%62%69%65%6e%64%75%72%70%61%73%73%77%6f%72%64';
              h = window.prompt('Entrez le mot de passe / Enter password');
              if(h == unescape(pass)) {
                  alert('Password accepté, vous pouvez valider le challenge avec ce mot de passe.\nYou an validate the challenge using this pass.');
              } else {
                  alert('Mauvais mot de passe / wrong password');
              }

              /* ]]> */
          </script>
    </head>
   <body><link rel='stylesheet' property='stylesheet' id='s' type='text/css' href='/template/s.css' media='all' /><iframe id='iframe' src='https://www.root-me.org/?page=externe_header'></iframe>
    </body>
</html>

pass에 16진수(아스키코드로 추정)가 들어가있다. 그리고 사용자가 입력한 값(h)와 unescape(pass)가 같으면 풀리는 문제다.

그럼 unescape(pass) 값을 알아내보자. unescape 함수를 직접 찾아보고 결과값을 예상해보는 방법도 있겠지만, 개발자 도구의 콘솔창을 사용하면 쉽게 알아낼 수 있다.

unescape() 함수 안에 문자열의 형태로 값을 넣어주면 이를 다른 값으로 디코딩 해준다.

저 값을 다시 그 비밀번호 입력창에 넣어주면...?둨흔?

cpasbiendurpassword

유후~~

 

 

 


unescape() 함수는 문자열을 디코딩하는 함수였다. 위의 문제에서는 아스키코드로 된 문자열을 문자 형태로 변형시켜주었다.

 

escape() 함수와 정반대로 생각하면 되는데, escape() 함수는 문자셋을 아스키(ASCII) 값으로 반환해주는 자바스크립트 내장함수다.
이 함수는 쉼표와 세미콜론 같은 문자가 쿠키문자열과의 충돌을 피하기 위해 사용하거나, url을 인코딩 할때도 사용한다.
이렇게 16진수 문자열로 변환된 문자열은 unescape() 함수로 다시 되돌려줄 수 있다.

 

반응형

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [root-me.org - Web-Server] HTTP - User-agent

    [root-me.org - Web-Server] HTTP - User-agent

    2020.09.15
  • [root-me.org - Web-Server] HTTP - Open redirect

    [root-me.org - Web-Server] HTTP - Open redirect

    2020.09.15
  • [root-me.org - Web-Client] Javascript - Authentication

    [root-me.org - Web-Client] Javascript - Authentication

    2020.09.14
  • [Webhacking.kr] Challenge old-33

    [Webhacking.kr] Challenge old-33

    2020.08.16
다른 글 더 둘러보기

정보

caputdraconis 블로그의 첫 페이지로 이동

caputdraconis

  • caputdraconis의 첫 페이지로 이동

검색

메뉴

    카테고리

    • 분류 전체보기 (168)
      • Cloud (3)
      • Computer Network (12)
      • Database (2)
      • Terraform (2)
      • 🥚고리즘 (13)
      • 겅부겅부🙃 (10)
        • Naver CS50 코칭스터디 (2)
        • Machine Learning (1)
        • Computing System (6)
      • 언어&프레임워크 (20)
        • Python (4)
        • Django (10)
        • Node JS (1)
        • C++ (2)
        • Java (1)
        • Flutter (2)
      • Security (76)
        • WebHacking Study (11)
        • 지옥방 스터디 (22)
        • 여름방학 스터디 (2)
        • PWN Study (6)
        • SUA Reversing Study (3)
        • PWN (3)
        • WebHacking (20)
        • Reversing (4)
      • 알고 있으면 도움되지 않을까,,? (23)
      • 일상다반사 (1)
      • 근황 정리 (1)
      • 42 Seoul (1)
        • Setting (1)

    최근 글

    인기 글

    댓글

    공지사항

    아카이브

    태그

    • 리스트함수
    • 파이썬
    • 파이썬기초
    • 드림핵
    • 웹해킹.kr
    • old-16
    • 파이썬함수
    • Python

    나의 외부 링크

    • Github
    • solved.ac
    • caputdraconis@kakao.com

    정보

    caputdraconis의 caputdraconis

    caputdraconis

    caputdraconis

    블로그 구독하기

    • 구독하기
    • RSS 피드

    방문자

    • 전체 방문자
    • 오늘
    • 어제

    티스토리

    • 티스토리 홈
    • 이 블로그 관리하기
    • 글쓰기
    Powered by Tistory / Kakao. Copyright © caputdraconis.

    티스토리툴바