Tiếp tục series write-up các bài trong picoCTF 2013. Đây là bài thứ 3 trong loạt 10 bài mà tôi sẽ write-up. Mức độ khó sẽ tăng dần theo từng câu hỏi, dù vậy cũng chỉ là khó ở dạng dễ cho người mới tập chơi thôi.

picoCTF 2013 kỳ 1 – Failure to Boot

picoCTF 2013 kỳ 2 – Read the Manual

Với câu hỏi thứ 3 này: XMLOL, ta sẽ tìm hiểu xem đề bài yêu cầu làm gì.

xmlol

Dịch đề bài ra như sau: Quyển sách hướng dẫn cách dump (để nguyên từ gốc cho lành, không biết dịch sao cho đúng nghĩa cả) tập tin cấu hình bị lỗi lấy từ bộ nhớ của robot. Bạn tìm được một tập tin XML bị lỗi và đang cố gắng tìm kiếm chìa khóa chứa cấu hình.

Gợi ý cho bài này để tìm flag là: Tập tin là gì? XML là cái gì?

Chơi CTF mà còn hỏi What is a file? =)))))

Ta không quá tập trung vào cái gợi ý đó làm gì. Thử nhấp vào liên kết mà đề bài cung cấp, ta được dẫn tới một trang web như bên dưới:

XMLOL.png

Nó báo lỗi trang này bị lỗi XML gì gì đó. OK, tôi không quan tâm! Đây có thể là bài write-up tôi mong muốn những bạn nào mới tập chơi nên đọc thật kĩ. Bởi vì đây là một dạng tìm kiếm flag rất phổ biến và thường xuyên xuất hiện trong các cuộc thi CTF bất kì. Chỉ có khác là mức độ khó thôi, còn cách thức tìm ra thứ để mình truy tìm flag thì hầu như không thay đổi.

Gặp những dạng bài liên quan tới một trang web được ban tổ chức cung cấp như vầy, bạn chỉ cần….View Page Source nó trước! Đó là cách phổ thông và cực kì thường xuyên được áp dụng. Trình duyệt thì dùng để đọc các mã HTML, CSS, JavaScript,… được người lập trình viết ra nhằm thể hiện nội dung cần truyền tải của web đó tới người xem. Tuy nhiên, nếu ta đem cái nội dung cần xem nhét vào một thẻ HTML chẳng hạn, mà cái thẻ đó không được xuất ra trên trình duyệt thì sao? Hoặc đơn giản hơn, ta cố tình bỏ nó vào một đoạn mã bị lỗi, do đó trình duyệt không đọc được, vậy là không hiển thị ra được.

Với trường hợp thứ nhất, ta nghĩ ngay đến chức năng tạo chú thích trong mỗi ngôn ngữ lập trình. Nó chỉ có chức năng là ghi chú lại để người lập trình, nhà phát triển muốn thay đổi sau này có thể đọc nó để hiểu đúng chức năng đoạn code cần thiết mà không cần phải tốn quá nhiều thời gian.

Với những đề bài dùng thẻ chú thích như vậy, cá nhân tôi thấy nó…dở. =)))

Còn với bài này, ta được đưa một file XML, thì nói chung cấu trúc khác HTML thôi nhưng cũng tuân theo cấu trúc <start>NỘI DUNG</start>… Đại loại vậy. Nhưng dĩ nhiên tôi chẳng dại gì đi ngồi đọc về cấu trúc XML cho tốn thời gian, cứ view source nó trước đi.

Và kết quả không ngoài dự đoán của ta, flag nằm chình ình trong đó chứ đâu xa xôi.

flag-xmlol

Rồi sau này, nếu đam mê chơi cái này, bạn sẽ còn gặp những dạng cũng hao hao như vầy, nhưng view source thì chỉ thấy được gợi ý thôi, sau đó phải vận dụng thêm kiến thức đề lập trình như PHP, JavaScript mới hòng tìm ra được flag.

Flag cần tìm là 24852700460959817542128953249.

VÕ TÌNH THƯƠNG

votinhthuong9@gmail.com

Advertisements