Outils pour utilisateurs

Outils du site


writeup:trust_the_future:web1

Web 1

On a une magnifique page web avec du javascript obfusqué. J'ai utilisé des appels à la chaine à console.log de nodejs pour afficher ce qui est exécuté.

<script>
$= ~[];$={___:++$,$$$$:(![]+"")[$],__$:++$,$_$_:(![]+"")[$],_$_:++$,$_$$:({}+"")[$],$$_$:($[$]+"")[$],_$$:++$,$$$_:(!""+"")[$],$__:++$,$_$:++$,$$__:({}+"")[$],$$_:++$,$$$:++$,$___:++$,$__$:++$,$__$__$:(++$[$]+"")[0]};$.$_=($.$_ = $ + "")[$.$_$]+($._$=$.$_[$.__$])+($.$$=($.$+"")[$.__$])+((!$)+"")[$._$$]+($.__=$.$_[$.$$_])+($.$=(!""+"")[$.__$])+($._= (!""+"")[$._$_])+$.$_[$.$_$]+$.__+$._$+$.$;$.$$=$.$+(!""+"")[$._$$]+$.__+$._+$.$+$.$$;$.$=($.___)[$.$_][$.$_];$.$($.$($.$$+"\""+$.$_$_+"="+"\\"+$.__$+$.$$_+$.___+$.$_[$.$_$]+$._$+"\\"+$.__$+$.$_$+$.$_$+"\\"+$.__$+$.$$_+$.___+$.__+($.$+"")[$.$__$+$.$___]+'\\"'+"\\"+$.__$+$.$$_+$.___+$.$_$_+$.$_[$._$$]+$.$_[$._$$]+"\\"+$.__$+$.$$_+$.$$$+$._$+$.$_[$.$_$]+$.$$_$+":"+'\\"'+($.$+"")[$.$__$+$.$__$]+";"+($.$+"")[$.$_$]+$.$$$$+($.$+"")[$.$__$+$.$___]+$.$_$_+"="+"="+'\\"'+($+"")[$.___]+$.___+$.$_$$+$.$$$$+$._+$.$_[$._$$]+$.$$__+$.$_$_+$.__+$._$$+$.$$_$+($.$+"")[$.$_$*$.$__]+($+"")[$._$$]+$.$_[$._$$]+($.$+"").replace("    ", "").replace("]\x0a}", "] }")[$.$__$*$.$__]+($+"")[$.$$$*$._$_]+'\\"'+($.$+"")[$.$__$+$.$__$]+($.$+"")[$.$_$*$.$__]+$.$_$_+(![]+"")[$._$_]+$.$$$_+$.$_[$.$_$]+$.__+($.$+"")[$.$__$+$.$___]+'\\"'+$.__+"\\"+$.__$+$.$_$+$.___+$.$$$_+($.$+"")[$.$___]+$.__+$._$+"\\"+$.__$+$.$_$+$._$$+$.$$$_+$.$_[$._$_]+($.$+"")[$.$___]+($.$+"")[$.$_$]+$.$_[$._$$]+($.$+"")[$.$___]+$.__+"\\"+$.__$+$.$_$+$.___+$.$$$_+($.$+"")[$.$___]+"\\"+$.__$+$.$$_+$.___+$.$_$_+$.$_[$._$$]+$.$_[$._$$]+"\\"+$.__$+$.$$_+$.$$$+$._$+$.$_[$.$_$]+$.$$_$+'\\"'+($.$+"")[$.$__$+$.$__$]+($.$+"").replace("    ", "").replace("]\x0a}", "] }")[$.$__$*$.$__]+$.$$$_+(![]+"")[$._$_]+$.$_[$._$$]+$.$$$_+($.$+"")[$.$_$*$.$__]+$.$_$_+(![]+"")[$._$_]+$.$$$_+$.$_[$.$_$]+$.__+($.$+"")[$.$__$+$.$___]+'\\"'+$.__+$.$_[$.$_$]+"\\"+$.__$+$.$$$+$.__$+($.$+"")[$.$___]+$.$_$_+"\\"+$.__$+$.$__+$.$$$+$.$_$_+($.$+"")[$.$_$]+$.$_[$._$_]+"!"+'\\"'+($.$+"")[$.$__$+$.$__$]+($.$+"").replace("    ", "").replace("]\x0a}", "] }")[$.$__$*$.$__]+";"+"\"")())();
</script>
<html><head></head><body></body></html>
 $ = ~[];
    $ = {
        ___: ++$,
        $$$$: (![] + "")[$],
        __$: ++$,
        $_$_: (![] + "")[$],
        _$_: ++$,
        $_$$: ({} + "")[$],
        $$_$: ($[$] + "")[$],
        _$$: ++$,
        $$$_: (!"" + "")[$],
        $__: ++$,
        $_$: ++$,
        $$__: ({} + "")[$],
        $$_: ++$,
        $$$: ++$,
        $___: ++$,
        $__$: ++$,
        $__$__$: (++$[$] + "")[0]
    };
    $.$_ = ($.$_ = $ + "")[$.$_$] + ($._$ = $.$_[$.__$]) + ($.$$ = ($.$ + "")[$.__$]) + ((!$) + "")[$._$$] + ($.__ = $.$_[$.$$_]) + ($.$ = (!"" + "")[$.__$]) + ($._ = (!"" + "")[$._$_]) + $.$_[$.$_$] + $.__ + $._$ + $.$;
    $.$$ = $.$ + (!"" + "")[$._$$] + $.__ + $._ + $.$ + $.$$;
    $.$ = ($.___)[$.$_][$.$_];
    console.log($.$.$$ + "\"" + $.$_$_ + "=" + "\\" + $.__$ + $.$$_ + $.___ + $.$_[$.$_$] + $._$ + "\\" + $.__$ + $.$_$ + $.$_$ + "\\" + $.__$ + $.$$_ + $.___ + $.__ + ($.$ + "")[$.$__$ + $.$___] + '\\"' + "\\" + $.__$ + $.$$_ + $.___ + $.$_$_ + $.$_[$._$$] + $.$_[$._$$] + "\\" + $.__$ + $.$$_ + $.$$$ + $._$ + $.$_[$.$_$] + $.$$_$ + ":" + '\\"' + ($.$ + "")[$.$__$ + $.$__$] + ";" + ($.$ + "")[$.$_$] + $.$$$$ + ($.$ + "")[$.$__$ + $.$___] + $.$_$_ + "=" + "=" + '\\"' + ($ + "")[$.___] + $.___ + $.$_$$ + $.$$$$ + $._ + $.$_[$._$$] + $.$$__ + $.$_$_ + $.__ + $._$$ + $.$$_$ + ($.$ + "")[$.$_$ * $.$__] + ($ + "")[$._$$] + $.$_[$._$$] + ($.$ + "").replace("    ", "").replace("]\x0a}", "] }")[$.$__$ * $.$__] + ($ + "")[$.$$$ * $._$_] + '\\"' + ($.$ + "")[$.$__$ + $.$__$] + ($.$ + "")[$.$_$ * $.$__] + $.$_$_ + (![] + "")[$._$_] + $.$$$_ + $.$_[$.$_$] + $.__ + ($.$ + "")[$.$__$ + $.$___] + '\\"' + $.__ + "\\" + $.__$ + $.$_$ + $.___ + $.$$$_ + ($.$ + "")[$.$___] + $.__ + $._$ + "\\" + $.__$ + $.$_$ + $._$$ + $.$$$_ + $.$_[$._$_] + ($.$ + "")[$.$___] + ($.$ + "")[$.$_$] + $.$_[$._$$] + ($.$ + "")[$.$___] + $.__ + "\\" + $.__$ + $.$_$ + $.___ + $.$$$_ + ($.$ + "")[$.$___] + "\\" + $.__$ + $.$$_ + $.___ + $.$_$_ + $.$_[$._$$] + $.$_[$._$$] + "\\" + $.__$ + $.$$_ + $.$$$ + $._$ + $.$_[$.$_$] + $.$$_$ + '\\"' + ($.$ + "")[$.$__$ + $.$__$] + ($.$ + "").replace("    ", "").replace("]\x0a}", "] }")[$.$__$ * $.$__] + $.$$$_ + (![] + "")[$._$_] + $.$_[$._$$] + $.$$$_ + ($.$ + "")[$.$_$ * $.$__] + $.$_$_ + (![] + "")[$._$_] + $.$$$_ + $.$_[$.$_$] + $.__ + ($.$ + "")[$.$__$ + $.$___] + '\\"' + $.__ + $.$_[$.$_$] + "\\" + $.__$ + $.$$$ + $.__$ + ($.$ + "")[$.$___] + $.$_$_ + "\\" + $.__$ + $.$__ + $.$$$ + $.$_$_ + ($.$ + "")[$.$_$] + $.$_[$._$_] + "!" + '\\"' + ($.$ + "")[$.$__$ + $.$__$] + ($.$ + "").replace("    ", "").replace("]\x0a}", "] }")[$.$__$ * $.$__] + ";" + "\"");
    // $.$($.$($.$$ + "\"" + $.$_$_ + "=" + "\\" + $.__$ + $.$$_ + $.___ + $.$_[$.$_$] + $._$ + "\\" + $.__$ + $.$_$ + $.$_$ + "\\" + $.__$ + $.$$_ + $.___ + $.__ + ($.$ + "")[$.$__$ + $.$___] + '\\"' + "\\" + $.__$ + $.$$_ + $.___ + $.$_$_ + $.$_[$._$$] + $.$_[$._$$] + "\\" + $.__$ + $.$$_ + $.$$$ + $._$ + $.$_[$.$_$] + $.$$_$ + ":" + '\\"' + ($.$ + "")[$.$__$ + $.$__$] + ";" + ($.$ + "")[$.$_$] + $.$$$$ + ($.$ + "")[$.$__$ + $.$___] + $.$_$_ + "=" + "=" + '\\"' + ($ + "")[$.___] + $.___ + $.$_$$ + $.$$$$ + $._ + $.$_[$._$$] + $.$$__ + $.$_$_ + $.__ + $._$$ + $.$$_$ + ($.$ + "")[$.$_$ * $.$__] + ($ + "")[$._$$] + $.$_[$._$$] + ($.$ + "").replace("    ", "").replace("]\x0a}", "] }")[$.$__$ * $.$__] + ($ + "")[$.$$$ * $._$_] + '\\"' + ($.$ + "")[$.$__$ + $.$__$] + ($.$ + "")[$.$_$ * $.$__] + $.$_$_ + (![] + "")[$._$_] + $.$$$_ + $.$_[$.$_$] + $.__ + ($.$ + "")[$.$__$ + $.$___] + '\\"' + $.__ + "\\" + $.__$ + $.$_$ + $.___ + $.$$$_ + ($.$ + "")[$.$___] + $.__ + $._$ + "\\" + $.__$ + $.$_$ + $._$$ + $.$$$_ + $.$_[$._$_] + ($.$ + "")[$.$___] + ($.$ + "")[$.$_$] + $.$_[$._$$] + ($.$ + "")[$.$___] + $.__ + "\\" + $.__$ + $.$_$ + $.___ + $.$$$_ + ($.$ + "")[$.$___] + "\\" + $.__$ + $.$$_ + $.___ + $.$_$_ + $.$_[$._$$] + $.$_[$._$$] + "\\" + $.__$ + $.$$_ + $.$$$ + $._$ + $.$_[$.$_$] + $.$$_$ + '\\"' + ($.$ + "")[$.$__$ + $.$__$] + ($.$ + "").replace("    ", "").replace("]\x0a}", "] }")[$.$__$ * $.$__] + $.$$$_ + (![] + "")[$._$_] + $.$_[$._$$] + $.$$$_ + ($.$ + "")[$.$_$ * $.$__] + $.$_$_ + (![] + "")[$._$_] + $.$$$_ + $.$_[$.$_$] + $.__ + ($.$ + "")[$.$__$ + $.$___] + '\\"' + $.__ + $.$_[$.$_$] + "\\" + $.__$ + $.$$$ + $.__$ + ($.$ + "")[$.$___] + $.$_$_ + "\\" + $.__$ + $.$__ + $.$$$ + $.$_$_ + ($.$ + "")[$.$_$] + $.$_[$._$_] + "!" + '\\"' + ($.$ + "")[$.$__$ + $.$__$] + ($.$ + "").replace("    ", "").replace("]\x0a}", "] }")[$.$__$ * $.$__] + ";" + "\"")())();

On a en sortie :

a=prompt("password:");
if(a=="[0bfuscat3d{js}]"){
alert("the token is the password")
}else{
alert("try again!")
}

Flag : [0bfuscat3d{js}]

writeup/trust_the_future/web1.txt · Dernière modification: 2014/11/24 09:18 par tlk