Advanced-potion-making
Đề bài
Bước 1: Xác định định dạng thông tin file




Bước 2: Xác định vấn đề
- Magic bytes bị sai (4E 47 biến thành 42 11).
- Chiều dài khối IHDR bị sai (00 00 00 0D biến thành 00 12 13 14).
Script sửa tự động:
with open("advanced-potion-making", "rb") as f:
data = list(f.read())
# Sửa Magic Bytes: 89 50 4E 47
data[2] = 0x4E
data[3] = 0x47
# Sửa IHDR Length: 00 00 00 0D
data[8] = 0x00
data[9] = 0x00
data[10] = 0x00
data[11] = 0x0D
with open("fixed.png", "wb") as f:
f.write(bytes(data))
Bước 3: Thực hiện sau khi sửa


Cụ thể, nó tìm thấy một OpenPGP Secret Key (Khóa bí mật PGP) được giấu ở hai vị trí khác nhau trong cấu trúc pixel:
- b2,bgr,msb,xy: Bit thứ 2, kênh màu BGR, quét theo hàng ngang (xy).
- b5,g,lsb,xy: Bit thứ 5, kênh màu Green, quét theo hàng ngang. Em đã thử trích xuất mảnh ở b2,bgr,msb,xy trước nhưng chỉ chứa các byte rác và hầu như không thu được kết quả. Sau đó, có repo chứa tool stegsolve, giúp hỗ trợ giải mã


Flag

Result

picoCTF{w1z4rdry}