Rating:

## Solution
PNG files are made up of multiple chunks, each with the following format:
```
+-------------------------------------------------+
| length (4B) | type (4B) | data (var) | crc (4B) |
+-------------------------------------------------+
```

Viewing the PNG in a hex editor, the first few chunks meet this specification. After the `pHYs` chunk something is wrong. The last byte of the `pHYs` chunk's CRC occurs at offset 0x52. 0x53 through 0x56 should be the length of the next chunk, but it is a very large number. Also, 0x57 through 0x5a are not a known chunk type. However, a few bytes ahead appears to be a valid `IDAT` chunk - maybe there are extra bytes between the chunks? Removing `6d 08 60 97 27 ff` results in the `IDAT` chunk aligning as expected. If we continue to the end of the next section, we will find the same problem. `fix_png.py` will parse the PNG and remove the bytes between the chunks, resulting in:

![`fixed.png`](https://malcrypt.gitlab.io/blog/ctfs/2021/tenable/images/fix_me/fixed.png)

## Flag
**flag{hands_off_my_png}**

Original writeup (https://malcrypt.gitlab.io/blog/ctfs/2021/tenable/forensics/fix_me/).