ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Webhacking.kr] 12번 풀이
    Wargame/webhacking.kr (old) 2019. 4. 16. 03:33


    페이지에는 힌트가 없다.. 그저 자..바스크립트 도전..이라고만 적혀있다..;;

    그렇다면 도전..!


    우리에겐 아주 유용한 개발자 도구(F12)가 있다.

    이 도구를 사용하여 소스를 보자!!



    Char 함수로 뭔가 문자열이 저장되어 있고, 그 문자열이 eval 함수에 의해 자바스크립트 코드로 실행된다.

    그렇다면, 문자열은 아마 소스 코드일 것이다.


    - eval("문자열")

    문자열을 자바스크립트 코드로 실행하는 함수로,

    식 형태로 된 문자열을 실수로 바꾸어 반환해주는 자바스크립트 내장함수


    Char의 값을 하나하나 비교해서 소스를 알아내도 되지만..,,

    우리에겐 뭐다? 아주 유용한 개발자 도구가 있다..!

    개발자 도구의 Console 창을 이용하면 아주 쉽게 Char 함수의 문자열을 해석할 수 있다.



    알아볼 수 있게 소스 코드로 변환되었다.

    password 값을 코드를 보고 직접 해석해도 되지만,, 귀찮으니까 개발자 도구를 활용하였다:)

    password 값을 알아내기 위해 아주 조금 아래와 같이 변경하였다.

    (if문을 제거하였다.)



    if 문을 통해 ck와 비교되던 문자열은 "=youaregod~~~~~~~!"이다.

    password는 ck의 값에서 =를 공백으로 치환한 값으로 "youaregod~~~~~~~!"으로 예상할 수 있다.


    또한, ck의 값은 document.URL.substr(document.URL.indexOf('='))의 값으로 입력이 가능하다.

    document.URL.substr(document.URL.indexOf('='))은 url에 '='부터 끝까지의 문자열을 의미한다.

    따라서, url을 통해 값을 보낼 수 있는 '?'와 함께 'youaregod~~~~~~~!'을 입력해주면

    소스 코드대로 password를 알려주는 alert 창이 뜰 것이다.


    ?=youaregod~~~~~~~!



    예상대로 password는 "youaregod~~~~~~~!"이다.

    Auth 페이지에 가서 인증하면 문제가 풀린다.



    'Wargame > webhacking.kr (old)' 카테고리의 다른 글

    [Webhacking.kr] 14번 풀이  (0) 2019.04.18
    [Webhacking.kr] 13번 풀이  (0) 2019.04.16
    [Webhacking.kr] 11번 풀이  (0) 2019.04.16
    [Webhacking.kr] 10번 풀이  (0) 2019.03.03
    [Webhacking.kr] 9번 풀이  (0) 2019.03.02

    댓글

@Jo Grini's Blog