Đề bài

Giải
Đề bài cho mình một file ảnh sau

Đầu tiên vẫn sẽ là kiểm tra file ảnh
$ pngcheck legit.png
legit.png additional data after IEND chunk
ERROR: legit.png
Thấy nó có dư ra một đoạn dữ liệu sau IEND, xem sau bằng HxD vậy, mình sẽ binwalk trước
$ binwalk legit.png
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 PNG image, 2000 x 2000, 8-bit/color RGB, non-interlaced
392 0x188 Zlib compressed data, default compression
58820 0xE5C4 MySQL MISAM index file Version 7
618342 0x96F66 Zlib compressed data, compressed
Cũng không thấy gì lắm, bây giờ mình sẽ mở HxD xem đoạn dữ liệu thừa là gì

Sau khi kết thúc file thì còn file png khác nữa, mình sẽ trích xuất nó ra
Tiếp tục là kiểm tra file
$ pngcheck legit_1.png
legit_1.png invalid IHDR image dimensions (0x0)
ERROR: legit_1.png
Có vẻ như ảnh lại tiếp tục bị hỏng, IHDR khả năng không được khai báo đầy đủ
Theo lý thuyết thì IHDR sẽ chứa data gồm 13 bytes dữ liệu với ý nghĩa từng bytes như sau:

Còn khi mở bằng HxD thì sẽ thấy IHDR chống kha khá bytes sau

Chủ yếu là mất width và height nên mình sẽ phải tính đoạn này và thêm vào
Ở đây muốn tính width và height thì cần dữ liệu thô, tính ra sẽ là: 16189723
Với RGBA 8-bit, mỗi dòng có 4*width + 1 byte (1 byte filter + 4 byte mỗi pixel). Giải phương trình height * (4*width + 1) = 16189723 cho width, height ≤ 5000: → nghiệm hợp lý: width = 1977, height = 2047

Sau khi sửa ta thu được ảnh sau

Ở đây mình sử dụng stegsolve để tìm ra thông điệp bị ẩn

Flag
Flag: CHH{Im4g3_1n_1m@gE_1s_n1c3!!}
'WriteUp > Steganography' 카테고리의 다른 글
| Here with your eyes - Cookie Arena (0) | 2025.11.22 |
|---|---|
| Disco - Cookie Arena (0) | 2025.11.22 |
| Can you see me ? - Cookie Arena (0) | 2025.11.22 |
| Split - Cookie Arena (0) | 2025.11.21 |
