Để có cái nhìn tổng quan về CTF (Capture The Flag) cho những bạn mong muốn tìm hiểu, tôi quyết định viết thử một vài cái write-up (bài giải) để bạn hiểu được cách chơi. Cá nhân tôi, nói trước luôn, không phải chuyên gia về CTF, mà đơn thuần cũng chỉ là một người đang tập chơi từ từ từng bước một mà thôi. Chưa thắng giải nào cả, cũng không có team (thật ra team thì cũng có nhưng chỉ có một thành viên duy nhất haha… Kiếp sống không bạn bè)
Nếu để ý, từng đọc nhiều các write-up (làm hết cách mà không ra mới đi đọc write-up nhé, đọc trước thì còn ý nghĩa gì nữa), bạn sẽ thấy đôi khi cùng một vấn đề nhưng có nhiều cách giải khác nhau. Không quan trọng cách nào, miễn sao bạn lôi ra được cái flag cần tìm là được, và không chơi DDOS dưới mọi hình thức :”)
Nói như thế là để thấy rằng, đôi khi tôi viết ở đây là cách nghĩ của tôi, hướng của tôi giải quyết vấn đề, có thể dở hoặc có thể dở tệ hoặc cực dở. Không ép bạn phải rập khuôn làm theo tôi, mà đọc write-up là để hình dung ra được con đường suy luận như thế nào. Đôi khi, suy hoài mà không ra thì luận luôn là không biết làm cho nhanh :”)
Trước khi bắt đầu, có một lưu ý nhỏ là ta nên dùng OS Linux để chơi, tiện rất nhiều. Tôi đang dùng Ubuntu để sử dụng viết bài viết này luôn.
OK, ta bắt đầu.
PicoCTF 2017 kết thúc từ lúc tháng 3, nhưng vì nó đơn giản và dễ cho người nhập môn (có nhiều câu tôi vẫn chưa nghĩ ra cách làm haha) nên tôi sẽ lấy nó ra làm minh họa.
Mới vào cuộc chơi, luôn có màn khởi động đặc trưng của giải picoCTF với việc kiểm tra kiến thức căn bản của người chơi. Kinh điển rồi, luôn là Linux command.
How can you figure out Robin Morris’s middle name? Thankfully you have a list you can check!
Ta tiếp tục tới Tutorial 2
Robin handed me this the other day. Maybe it will help me find the answer?
Tới bài này, ta lại tiếp tục mở xem cái this dẫn tới đâu. Một file text chứ một câu dài ngoằn đã bị mã hóa. Nếu đọc gợi ý, ta thấy “using this cool ROT13”. Trò trẻ con =)) Nghe qua là đoán được ngay phương pháp mã hóa của nó. Caesar cipher!
Flag cần tìm là “Inflatable Sloth Monster”. Nếu không muốn sử dụng công cụ trên mạng, thì mình có thể tự viết một cái tool nho nhỏ để dùng cho việc giải mã Caesar này. Đây là một công cụ nhỏ tôi viết bằng C# trước đó khá lâu.
Không thể nói là giao diện đẹp, nhưng chức năng thì hoàn toàn chuẩn xác.
Robin handed me some color codes the other day. They don’t look like anything to me though. Can you help me find her favorite shade of red?
Nhưng nếu quan sát kĩ, ta sẽ biết đây là hệ màu RGB, lại lướt qua danh sách đề bài một lần nữa, ta thấy màu C70002 sẽ có 2 bit màu đầu tiên lớn hơn tất cả các màu còn lại. Mẹo nhỏ mà hay!