⚠ Spoiler: Đây là write-up cho các challenge của Flare-on 9 tổ chức vào khoảng tháng 11/2022 tại Website.
[01] Flaredle
Description:
Welcome to Flare-On 9!
You probably won't win. Maybe you're like us and spent the year playing Wordle. We made our own version that is too hard to beat without cheating.
Play it live at: http://flare-on.com/flaredle/
7-zip password: flare
Công cụ sử dụng: Web Browser (Google Chrome)
Đây là một phiên bản biến thể của trò chơi đoán chữ Wordle (bạn đọc có thể liên tưởng đến gameshow Chiếc nón kì diệu) nhưng thay vì sử dụng 1 từ cơ bản thì cần đoán ra một chuỗi có độ dài lớn. Cách giải nhanh Wordle là áp dụng thống kê nhưng do đây là một chủ đề không liên quan lắm nên mình sẽ bỏ qua mà tập trung vào mã nguồn của Flaredle.
Mã nguồn chương trình kiểm tra chuỗi đầu vào và so sánh giữa chuỗi từ người dùng và chuỗi flag nằm trong file script.js
if (guessString === rightGuessString) {
let flag = rightGuessString + '@flare-on.com';
toastr.options.timeOut = 0;
toastr.options.onclick = function() {alert(flag);}
toastr.success('You guessed right! The flag is ' + flag);
guessesRemaining = 0
return
}
Do script được sử dụng trong HTML với type module
nên không lấy được giá trị từ Console trong Developer Tools (F12). Để lấy được giá trị thì mình dùng tính năng Debug. Cụ thể đặt breakpoint tại dòng thứ 9 của file script.js
, thêm biến cần theo dõi vào khung Watch và tải lại trang để lấy giá trị.
Như vậy giá trị của rightGuessString
chính là flareonisallaboutcats
. Kiểm tra lại với chương trình ta có thông báo xác nhận flag đúng