LeaveRet JFF3 Write-Up | By RevDev

Misc - sanity_check [10pt]


1. Ready to Solve
Problem
http://ctf.leaveret.kr/go/db0c6d1ce29a657b2963399813f4b009/


Used Tools
Firefox Developer Tools


WebPage Appearance




2. Gathering Informations
Source Code
/*
    patternLock.js v 0.4.2
    Author: Sudhanshu Yadav
    Copyright (c) 2013 Sudhanshu Yadav - ignitersworld.com , released under the MIT license.
    Demo on: ignitersworld.com/lab/patternLock.html
*/
;(function ($, window, document, undefined) {
    "use strict";

    var nullFunc = function () {},
        objectHolder = {};

    //internal functions
    function readyDom(iObj) {
...
...
...
function solve(check){
if(check.toString(13) == "75b8573") var flag=check.toString(12);
alert("Flag: "+flag);
}



3. Solve

이 문제는 전혀 깊게 생각할 필요가 없는 문제이다.
자바스크립트에서 toString함수가 무엇을 하는 함수인지만 알면 바로 풀 수 있다.
toString함수는 Object의 값을 문자열의 형태로 출력하는 함수로서, 인자로 정수가 들어갈 시 해당 정수에 해당하는 진법으로 값을 변형해서 출력하게 된다.

그럼, 답은 이미 나왔다. 다음 부분을 보자.

function solve(check){
if(check.toString(13) == "75b8573") var flag=check.toString(12);
alert("Flag: "+flag);
}

if(check.toString(13) == "75b8573") var flag=check.toString(12);라는 문이 보인다. 결국 13진수 75b8573을 12진수로 바꾼 것이 바로 플래그이다.
간단하게, 75b8573을 10진수로 바꾼 값을 solve(check)에서 check부분에 넣어주면 된다.

그렇다면 Console 창에 입력해야 할 코드는 다음과 같다.

var getauth = 35976814
solve(getauth)



4. Flag


Posted by RevDev
,