Challenge Description

Gợi ý: View source tim doan script bi ma hoa, chuyen doi scipt tu he hexa sang text, tim thong tin lien quan user,pass, đáp án có dạng: HutechCtf{Cau_tra_loi}

Link: http://finallweb4.epizy.com/

web333.jpg

Lại một thử thách Web Security với giao diện đăng nhập. Ta xem source code của nó để lấy thông tin.

web331.jpg

Ta thấy có một đoạn code JavaScript nằm ẩn bên dưới. Tuy nhiên, đoạn code này đã bị mã hóa từ dạng plain text sang dạng hex, không thể đọc được bằng mắt thường. Cách xử lý tiếp theo là ta phải tìm công cụ giải mã từ hex sang text bình thường.

Tôi search được một trang web hỗ trợ cho việc này.

web332.jpg

Và không ngoài dự đoán, tôi lấy được đoạn code xử lý việc đăng nhập của người dùng. Do trang web này trả về code gốc với định dạng khá xấu để đọc, nên tôi xử lý thêm một lần nữa để làm đẹp lại code cho dễ nhìn.

web334.jpg

Quan sát đoạn code:

var _0xae5b = [‘password’, ‘username’, ‘getElementById’, ‘value’, ‘hutech-ctf-hutech’, ‘Bingo’, ‘Wrong password’];

function check() {

    var _0xeb80x2 = document[_0xae5b[2]](_0xae5b[1])[_0xae5b[3]];

    var _0xeb80x3 = document[_0xae5b[2]](_0xae5b[0])[_0xae5b[3]];

    if (_0xeb80x2 == _0xae5b[4] && _0xeb80x3 == _0xae5b[4]) {

        alert(_0xae5b[5])

    } else {

        alert(_0xae5b[6])

    }

}

Ta thấy có function tên là check() thực hiện công việc kiểm tra tài khoản đăng nhập. Lấy ra lần lượt các giá trị để đọc thì ta có được như sau:

_0xae5b[2] = ‘getElementById’

_0xae5b[1] = ‘username’

_0xae5b[3] = ‘value’

_0xae5b[2] = ‘getElementById’

_0xae5b[0] = ‘password’

_0xae5b[2] = ‘value’

0xae5b[4] = ‘hutech-ctf-hutech’

0xae5b[5] = ‘Bingo’

0xae5b[6] = ‘Wrong password’

Vậy, nếu ghép tất cả dữ kiện ta vừa suy luận được, đoạn code sẽ như sau:

function check() {

    var _0xeb80x2 = document[“getElementById”](“username”)[“value”];

    var _0xeb80x3 = document[“getElementById”](“password”)[“value”];

    if (_0xeb80x2 == “hutech-ctf-hutech” && _0xeb80x3 == “hutech-ctf-hutech” ) {

        alert(“Bingo”)

    } else {

        alert(“Wrong password”)

    }

}

Như vậy, ta biết được tài khoản để đăng nhập cho câu hỏi này sẽ là:

Username: hutech-ctf-hutech và Password: hutech-ctf-hutech

Quay trở lại trang web đăng nhập đề bài, ta đăng nhập với tài khoản vừa tìm được và lấy flag.

web335.jpg

HutechCtf{th1nk1ng_b1g}

VÕ TÌNH THƯƠNG

votinhthuong9@gmail.com