次の文字列があります。"VGxkTk1GcHFTWGRhUjBacFkycENhMWx0VFRWT1IxazBUMVJXYUZwSFNUQmlWR1JxVGtSVmVVOVZjR3RhYWtFOQ%3D%3D"
そしてforループ:
for(var i=0,k=3,l=643; (i<=20 && l>200) || k>8;i++,k--){
console.count();
}
md5を取得するには?
function display() { var cookie = "VGxkTk1GcHFTWGRh UjBacFkycENhMWx0 VFRWT1IxazBUMVJX YUZwSFNUQmlWR1Jx VGtSVmVVOVZjR3Rh YWtFOQ%3D%3D"; for(var i=0,k=3,l=643; (i<=20 && l>200) || k> 8;i++,k--){ console.count() } }
document.write("Here is your cookie: "+cookie+" It's md5, isn't!");
// To solve this you must know about md5 hash
// Go to https://en.wikipedia.org/wiki/MD5 and read about it ;)
}
答え1
文字列は、base64でエンコードされてからURLでエンコードできるように見えます。最後の「%3D%3D」は2つの等号になります。
それは価値があるため、これをBase64デコーダに渡すと、有効なBase64エンコーディングのように見える別の文字列が生成されます。 Base64デコーダを計3回踏むと全く違う様子が得られます。
echo "VGxkTk1GcHFTWGRhUjBacFkycENhMWx0VFRWT1IxazBUMVJXYUZwSFNUQmlWR1JxVGtSVmVVOVZjR3RhYWtFOQ==" \
| base64 -d | base64 -d | base64 -d |od -t x1z
結果:
0000000 35 63 34 66 32 30 64 61 62 72 30 64 62 63 39 34 >5c4f20dabr0dbc94<
0000020 66 38 39 35 61 64 62 34 6d 37 63 34 35 32 39 4a >f895adb4m7c4529J<
0000040 64 66 30 >df0<
突然、私たちはすべての小文字と数字を得ました。 Base64デコードを追加しようとすると、一部の印刷できない文字が発生し、Base64デコーダで「誤った入力」が発生します。だからそれはおそらく何かを意味するかもしれないし、そうではないかもしれません。
標準のMD5チェックサムより3つの文字があります。3つの文字はすべて有効なmd5sum文字のリストの外側にあります(「r」、「m」、および「J」)。これを削除すると、16進数が得られます。できる理論的にはMD5チェックサムです。何。