[Tuts] Meepwn CTF Quals 2018 – White Snow, Black Shadow

tingameblog

Active Member
Apr 26, 2013
1,216
0
36
31


Bài này thuộc nhóm MISC, điểm khá thấp so với mặt bằng chung nên tôi chọn giải nó trước. Ngụy biện vậy thôi, chứ thật ra là mở hết tất cả các câu khác rồi, không biết làm câu nào cả hahahahaha….

Đề bài cho ta một lời gợi ý đầy ẩn ý kèm file đính kèm. Tải về giải nén ra thì thấy đó là một tấm hình dạng poster cắt ra từ truyện tranh Conan. Thấy hình ảnh là liên tưởng tới thể loại steganography (từ này tới bây giờ tôi vẫn chưa biết viết đúng chính tả, toàn phải copy dán vào) – giấu tin trong hình ảnh. Vậy thì cứ bỏ vào Stegsolve.jar để soi thử xem thế nào. Ý định đầu tiên của tôi đối với các bài dạng giấu tin trong hình ảnh bao giờ cũng chắc là LSB First.

1.png


Sau khi thử vòng vòng hết tất cả các trường hợp Bit Plane Order để tìm ra đúng nội dung cần Save Bin nhưng bất thành, tôi quyết định bỏ cuộc với Stegsolve.jar. Nhưng trước khi tắt nó thì tôi có vào Analyse -> File Format để xem qua thêm một lần nữa cho chắc. Và không ngoài dự đoán, nó tốn kha khá thời gian để mở lên File Format, có vẻ như ta đã đánh được đúng chỗ.

2.png


Trong mớ lằng nhằng dữ liệu đó, ta vớt được con cá to là message.pdf và PK là hai chỗ cần lưu tâm.

Với kinh nghiệm chơi trước đó một số câu giấu tin trong hình thì PK đem đi dò ở File Signature thì nó chính là Hex Signature của định dạng file nén. Vậy làm sao để trích xuất ra được cái file nén trong cái hình ảnh này mới là vấn đề.

Tôi có thử qua một số tool trên Kali Linux như binwalk, foremost,… nhưng dù là bao nhiêu options gợi ý trên mạng thì nó cũng vẫn không lấy ra được.

Nhưng khi thử nghiệm với binwalk, tôi để ý có dòng nhận dạng file zip sau cuối, vậy suy luận thử chắc nó là kiểu ghép nối giữa file hình ảnh jpg và file zip tạo thành một file hình bình thường. Do hình ảnh để ở phần trước, nên không ảnh hưởng gì tới việc xem và hiển thị tấm ảnh đó. Thế nếu cắt bỏ khúc hình ảnh đó đi và lấy ra phần nén file thôi thì có được không? Nếu ta xác định được EOF của file jpg đó.

Sau khi lượn vòng trên Internet thì tôi biết được EOF của file hình ảnh JPG là FF D9. Dùng HxD để mở tấm hình ra và tìm tới EOF của nó, sau đó làm thủ công quét chọn từ EOF ngược lên để xóa đi tấm hình ban đầu.

3.png


Sau khi cắt xong, ta lưu lại phần cần lấy với định dạng .zip. Nhưng lúc này, ta lại không thể mở được file nén đó cũng như giải nén ra lấy message.pdf bên trong.

Tới lúc này thì chính là khúc tôi bế tắc, không làm tiếp được. Chỉ đến khi cuộc thi kết thúc, đọc được 2 cái write-up thì mới biết cách làm tiếp theo. Điều buồn cười là tôi biết trước cách này rồi nhưng tôi không thử.

Ta truy cập https://www.garykessler.net/library/file_sigs.html?utm_source=tool.lu và tìm Hex Signature tương ứng với PK. Nhìn kỹ sẽ thấy, file nén đề bài có Hex Signature là 50 4B 05 06, trong khi cũng có trường hợp là 50 4B 03 04. Nếu lúc đó tôi thay đổi lại cái hex này thì chắc có lẽ đã không tốn thời gian vậy rồi.

Sau khi thử đổi thì ta giải nén được file thành công. Nhưng khuyên dùng 7zip để chuyên trị các câu này, hạn chế dùng WinRAR.

Lúc giải nén ta lại bị thêm lỗi Headers Error nhưng với 7zip, vẫn có thể lấy được tập tin.

4.png


Tập tin message.pdf không thể mở được vì bị corrupt, ta thử đi fix lỗi nó xem sao.

Tôi dùng một trang xử lý online để làm việc này cho nhanh.

https://www.pdf-online.com/osa/repair.aspx

Sau khi lấy về tập tin đã sửa chữa, tôi đã mở được thành công nó và xem được nội dung. Lục soát hết cũng không thấy có điểm gì khả nghi. Xem thử người ta giải thì có người gợi ý copy nó đem bỏ lên Google Docs, nhưng do tôi có cài sẵn bộ Office nên quăng luôn vào Word xem sao. Nhưng nhớ bật tính năng kiểm tra lỗi chính tả lên mới thấy được vấn đề.

5.png


Có một số chỗ sẽ bị dấu gạch đỏ dưới chân chữ, trong khi các chỗ khác thì hoàn toàn không. Ta thử tô nó và đổi màu chữ kèm phóng to lên để quan sát xem sao.

6.png


Có những chữ rất nhỏ và bị ẩn đi trùng màu với màu nền của trình soạn thảo.

Ta chỉ việc copy ra và ghép lại sẽ lấy được flag. Hoặc có thể bỏ nội dung file message.pdf vào trang web này để thấy được flag.

https://www.diffchecker.com/

Flag cần tìm sẽ là:

MeePwnCTF{T3xt_Und3r_t3Xt!!!!}


VÕ TÌNH THƯƠNG

[email protected]


THAM KHẢO

1 – https://medium.com/@Abdelkad3r/meepwn-ctf-quals-2018-writeup-part-1-ab216bbf0b35

2 – https://github.com/chaocipher/Writeups/blob/master/Meepwn2018-whitesnow.pdf

TTTI