Nói thật thì đây là 1 giải khá khó chịu với mình, vì ngoài độ guessing của các thử thách (forensics, mobile) thì thật ra chẳng có gì để nói cả (và rất tiếc với 1 mình mình làm thì không thể giải quyết được toàn bộ cùng 1 lúc)
Lost Puppey
Description: This is my lost puppey. He is trying to hide himself and hide something from me. Can you find them for me?
Attachment: Lost.docx
Đề bài cho mình 1 file docx, dựa vào đề bài để tìm xem thứ gì bị ẩn giấu thì với kinh nghiệm mình sẽ unzip nó ra
|
|
Ở đây để ý rằng có 2 file media trong thư mục word/media/
Có vẻ như image1.jpg
đang bị corrupt, mình sẽ kiểm tra các byte và header xem có vấn đề gì không
|
|
Yah, vậy nó thực chất là 1 file ZIP, đến đây cần giải nén nó ra nhưng xuất hiện thêm 1 vấn đề mới: password của file ZIP, với độ lỏ này thì chạy tools zip2john chắc là được rồi
|
|
Vậy mật khẩu file ZIP này là loveyou
sau khi giải nén ra thì được cái ảnh test.png
Với JPG thì mình không nghĩ nhiều cho lắm, ném lên Aperi’Solve cho tự xử lý nốt
flag: hackathon{bbc649da49b02570835df50fd173bff7d4933f07}
Whose name is it?
Description: I fell like there are many people drawing my secret…
Attachment: capture.pcap
Ở chall thứ 2 thì có vẻ đúng hơn 1 chút với cái nghĩa forensics …
Sau khi check các object xuất hiện trong lưu lượng mạng thì thấy có 1 file thực thi (mình đã rev nó + decompile thử) nhưng mà không có gì để “khai thác” nên chuyển hướng qua phương án khác
Trong quá trình tìm kiếm thì mình có thấy trong udp stream xuất hiện việc gửi nhận 1 txt nào đó khá khả nghi
Bắt thử 1 query trong đó và decode thử theo thói quen thì thấy rằng đây là header của 1 file ZIP, thấy có hope nên theo hướng này luôn
Vậy việc của mình bây giờ chỉ là filter toàn bộ các udp.stream từ 188 đến 1569 (kết thúc) để filter với dns && udp.stream >= 188 && udp.stream <= 1569
và viết script để loại bỏ các phần thừa rồi ném qua cyberchef cho xử lý nốt
script:
|
|
flag: CSTV_2023_{ba69f4c8c869295a9a8024b32a177bc63a942ffd}
L4g
Description: Can you deal with the lagging. If you can f the lag You will get the flag.
Attachment: 3y3L4g & 34rL4g.wav
Ở thử thách for cuối cùng này thì mình nhận được 2 file (1 wav và 1 file data), với kinh nghiệm thì mình xiên được file WAV đầu tiên bằng việc xem ảnh phổ của âm thanh
Nhìn qua thì thấy rằng đây là 1 đoạn mã Morse đơn giản –> WH4TY0UH34R1SN0TWH4TY0US33KF0R
, cái này chắc là để dùng sau vì còn 1 file mắt lag nữa (mình nghi là file ảnh)
Dựa vào header của file này thì đúng là các byte đã bị sửa và bản gốc là 1 file ảnh PNG, mình sẽ sửa lại header trước thành PNG
Ngoài ra thì còn 1 thứ khiến mình để ý nữa là 1HdR
, khả năng là bị lỗi chunk (IHDR
)
Ở đây mình sử dụng tool: PNG-Fixer để kiểm tra các chunk có vấn đề
Vậy là từ đây thì biết được có 2 chunk bị sai là 1HdR
và IPAD
(IHDR
và IDAT
) tiến hành sửa lại toàn bộ (bằng HexEd)
Sau khi fix xong chunk thì sẽ chuyển qua [PCRT](để kiểm tra các tổng quan các byte)
Mình vừa mới fix lại cái IPAD xong nên bây giờ cần sửa lại IDAT chunk data length ở offset 0xD0002 (bằng HexEd)
Cứ vậy sửa lỗi tiếp đến bao giờ có thể nhìn được ảnh (bỏ qua bước sửa CRC chunk vì ảnh ban đầu đã lỗi sẵn)
Ảnh sau khi sửa xong: output.png
Mở trên Windows sẽ nhìn thấy luôn chứ không bị lỗi nữa, có thể đọc đoạn chữ trên ảnh là: Mắt hơi lag xin thông cảm
và đoạn số là 123321232123
Đến hiện tại thì cả 2 file mình đã khai thác được toàn bộ file ảnh (bao gồm cả metadata của ảnh nữa) vậy chỉ còn lại file wav là chưa thực sự khai thác hết, với đoạn key trên có lẽ là pass của việc dùng tool? bài này stegano nên chắc cũng chỉ được có thế (mình mất nhiều thời gian suy nghĩ đủ hướng chỉnh ảnh các kiểu …)
|
|
yah, xong lag mắt, lag tai giờ đến lag não, không biết troll gì nữa đây …
|
|
Đến đây thì mình khá cạn lời rồi, vì brainfuck này không phải là nạp vào là ra mà phải lag tí não nữa mới được, chắc là cũng đọc theo chiều dọc giống như cái ảnh kia?
|
|
yah got it, giờ chỉ cần chuyển nó qua sha1 rồi nộp flag thôi :3 (và đến cuối cùng thì cái mã morse trong file wav ban đầu chẳng để làm gì :3)
flag: CSTV_2023_{1d7e89b852c2ef64283df637d0a36f16c3417f18}