Written by saisree
Could you login into this very secure site? Best of luck!
https://login.tjctf.org/
前提知識
- javascript難読化解除
- md5パスワード解読
解法
ログインしてみるが、画面遷移が無い。jsで認証操作をしているみたい。
ソースコードを見てみると、難読化されたjsコードがある。
やや、難読化解除すると以下のような感じ。
var _0xb31c = ['value', 'c2a094f7d35f2299b414b6a1b3bd595a', 'Sorry.\x20Wrong\x20username\x20or\x20password.', 'admin', 'tjctf{', 'getElementsByName', 'toString']; (function(_0xcd8e51, _0x31ce84) { var _0x55c419 = function(_0x56392e) { while (--_0x56392e) { _0xcd8e51['push'](_0xcd8e51['shift']()); } }; _0x55c419(++_0x31ce84); }(_0xb31c, 0x1e7)); var _0x4a84 = function(_0xcd8e51, _0x31ce84) { _0xcd8e51 = _0xcd8e51 - 0x0; var _0x55c419 = _0xb31c[_0xcd8e51]; return _0x55c419; }; checkUsername = function() { username = document['getElementsByName']('username')[0x0]['value']; password = document['getElementsByName']('password')[0x0]['value']; temp = md5(password)['toString'](); if (username == 'admin' && temp == 'c2a094f7d35f2299b414b6a1b3bd595a') alert('tjctf{' + password + '890898}'); else alert('Sorry. Wrong username or password.'); };
これを見ると、パスワードがmd5されてc2a094f7d35f2299b414b6a1b3bd595a
と比較されている。
ここにかけてみるとinevitable
と出る。
admin:inevitableでログインするとフラグが出てくる。