why-xor
*  
crypto  
cyberedu

Let's be fair, we all start with XOR, and we keep enjoying it.
# ['\x00', '\x00', '\x00'] at start of xored is the best hint you get

By opening the file I can see that there is an encrypted string. 
The commentary tells us that the 00 bytes at the start is the best hint we get. This means that the long string might be the flag and that it was xored with the ctf word 
*the flag has the format ctf{DATA}
*xoring 2 bytes that are the same will output 00, hence the 3 00 in the beginning of the array

So, the code modified to solve this challenge is:
xored = ['\x00', '\x00', '\x00', '\x18', 'C', '_', '\x05', 'E', 'V', 'T', 'F', 'U', 'R', 'B', '_', 'U', 'G', '_', 'V', '\x17', 'V', 'S', '@', '\x03', '[', 'C', '\x02', '\x07', 'C', 'Q', 'S', 'M', '\x02', 'P', 'M', '_', 'S', '\x12', 'V', '\x07', 'B', 'V', 'Q', '\x15', 'S', 'T', '\x11', '_', '\x05', 'A', 'P', '\x02', '\x17', 'R', 'Q', 'L', '\x04', 'P', 'E', 'W', 'P', 'L', '\x04', '\x07', '\x15', 'T', 'V', 'L', '\x1b']
s1 = xored
s2 = "ctf"*200
# ['\x00', '\x00', '\x00'] at start of xored is the best hint you get
a_list = [chr(ord(a) ^ ord(b)) for a,b in zip(s1, s2)]
print(a_list)
print("".join(a_list)) 



ctf{79f107231696395c004e87dd7709d3990f0d602a57e9f56ac428b31138bda258}