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}]