## Kiuar (pwn, 200p)
    telnet ctf.sharif.edu 12432
###ENG[PL](#pl-version)
First thing we receive in this task is request for proof of work - so we had to write a quick script calculating it for us.After submitting it, we receive some non-ASCII bytes and a message telling us we have 10s to reply.
Saving those unknown bytes to file and checking it using `file` command, we find it's a zlib-compressed data: `Send yourQR code:`.
Sending anything afterwards tells us that we need to send exactly 200 bytes - and if we do it, the message tells us thatthe input is not properly compressed. Finally, when we send zlib-compressed string "aaa" padded with zeros to 200 bytes,we receive `Sorry, no decode delegate for this image :|`. Googling this message tells us that it's a generic ImageMagickerror message - apparently we need to send an image. At this point we were prertty certain it has to be zlib-compressedimage file containing QR code. Sending QR with "aaa" text gives us:```Processing the received command...The output of your command is large, I only send 18 bytes of it :P Sorry, command not```So probably our text was executed as a command. Sending QR with `ls` confirms that - there was a `flag` file.We still had to work around limitation of command size (200 bytes limit for QR image) and output limit of 18 bytes.Finally, using `tail -c 40 flag` we were able to get the flag chunk by chunk.
###PL version
Pierwsze co dostajemy po połączeniu się z serwerem, to prośba o `proof of work`. Napisaliśmy więc skrypt realizujący ją,po czym otrzymaliśmy trochę bajtów spoza ASCII i wiadomość, że mamy 10s na odpowiedź.
Po zapisaniu tych nieznanych bajtów do pliku i sprawdzeniu ich poleceniem `file` dowiedzieliśmy się, że to daneskompresowane zlibem: `Send your QR code:`.
Wysłanie czegokolwiek mówi nam, że należy wysłac maksymalnie 200 bajtów. Po wysłaniu takiej właśnie ilości danych,dowiadujemy się, że dane nie są poprawnie skompresowane. No to wysyłamy skompresowany zlibem tekst "aaa" z dorzuconymibajtami zerowymi na koniec, po czym otrzymujemy wiadomość `Sorry, no decode delegate for this image :|`. Wygooglanie tego tekstu mówi, że to zwykły błąd ImageMagick - w tym momencie domyśliliśmy się, że należy wysłaćskompresowany obrazek z QR. Wysyłamy więc QR z "aaa":```Processing the received command...The output of your command is large, I only send 18 bytes of it :P Sorry, command not```Tekst jest więc pewnie wykonywany jako komenda. Potwierdziliśmy to wysyłając QR z `ls` - wylistowaliśmy plik `flag`.Nadal trzeba było obejść ograniczenie wielkości komendy (200 bajtów na obrazek z QR) i na odpowiedź serwera (18bajtów). Ostatecznie, używając `tail -c 40 flag` udało nam się kawałek po kawałku wyciągnąć flagę.