はまやんはまやんはまやん

hamayanhamayan's blog

Login [TJCTF 2020]

Written by saisree
Could you login into this very secure site? Best of luck!
https://login.tjctf.org/

前提知識

解法

f:id:hamayanhamayan:20200527185858p:plain

ログインしてみるが、画面遷移が無い。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でログインするとフラグが出てくる。

f:id:hamayanhamayan:20200527185920p:plain