> Can't play CSAW without your favorite block cipher!
>
> nc crypto.chal.csaw.io 5001

Initial connection attempt:

   $ nc crypto.chal.csaw.io 5001
   Hello! For each plaintext you enter, find out if the block cipher used is ECB or CBC. Enter "ECB" or "CBC" to get the flag!
   Enter plaintext:
   XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
   Ciphertext is:  e4667bbed18e16bfc2d6dbbea56d5241e4667bbed18e16bfc2d6dbbea56d5241e4667bbed18e16bfc2d6dbbea56d5241e4667bbed18e16bfc2d6dbbea56d5241e4667bbed18e16bfc2d6dbbea56d5241e4667bbed18e16bfc2d6dbbea56d5241f2a026af8ec44689976f9e280770030c
   ECB or CBC?

The service keeps asking you until you answer wrong.  This appears to
be a straight-forward ECB/CBC oracle, except it isn't.  The service
never sends you a flag and it doesn't seem to hide any data in the
response either (which would allow you to guess the hidden data one
byte at a time, another well-known attack).  Most annoyingly, it
disconnects after anywhere up to 176 consecutive successful tries.

At a later point a cryptic "<200" hint showed up.  Something terrible
dawned upon me, a tale about a CTF task at a qualifying event where an
(unreliable) web service sent out the flag in binary format, using the
presence/absence of a specific part in the HTTP response to signal
0/1.  This story inspired me to log a zero or one, depending on the
detected mode:

   01100110011011000110000101100111011110110100010101000011010000100101111101110010011001010100000001101100011011000111100101011111011100110101010101100011011010110010010001111101
   flag{ECB_re@lly_sUck$}