Tags: qr
Rating:
*This is a short summary of the full write-up at
<https://smyghalloumi.se/posts/2018-11-01-seccon2018-qr.html>.*
After analyzing the problem one can see that we need to provide the
web service with a single image that produces at least two valid QR
codes with different results under the resizing sequence
500→250→100→50.
Since the service is using the `NEAREST` operation, it is enough to
find the pixels from the original image that remain after resizing.
A simple test produces the pixels with indices `(10i + 7, 10j +
7)`. So in order to create our image we need to overlay every pixel
from one image into the above indices of the second image:
```
im1[7::10, 7::10] = im2
```
Uploading the resulting image to the service gives us back the flag.